Olá Inácio, fiz mais algumas alterações nos arquivos agcom.php e filtrar.php para tentar resolver estes problemas, mas consegui corrigir apenas o problema com o combobox quando se usa o BackSpace para retornar a página anterior.
cjp escreveu:2) na base AGTEL.DBF, ele não está localizando o nome Luiz, que existe na base; tanto procurando por Luiz, como por luiz, por LUIZ ou por uiz, em nenhuma hipótese ele acha;
A busca feita pela função SELECT do MySQL é "case sensitive", ela faz distinção entre letras maiúsculas e minúsculas, então no arquivo filtrar.php eu converti o conteúdo do campo de busca (filtro3) para MAIÚSCULA antes de fazer a busca no arquivo DBF, então é por isto que se no campo do arquivo DBF contém textos com letras em maiúsculas e minúsculas a busca não retorna nada.
Tentei usar no SELECT a função UPPER(), para converter o conteúdo do campo escolhido para maiúsculas, mas não deu certo.
$sql="SELECT * FROM ".$txtArquivo." WHERE UPPER(".$txtCampo.") LIKE '%".$txtPesquisa."%'";
Ocorre algum erro que nem é apresentada uma mensagem de erro, então fiquei sem saber qual o motivo do erro, acho que a função UPPER() não é aceitável em SELECT em arquivos DBFs. Volto a lembrar que não tenho experiência nenhuma com uso de arquivos DBF com PHP.
Bom, neste caso não posso lhe ajudar muito, então se não for apresentada uma outra solução, acho que você vai ter que converter todos os textos em letras maiúsculas nos campos dos seus arquivos DBF.
cjp escreveu:Também gostaria de saber se existe como fazer consulta semelhante para campos que não são caracteres. Já verifiquei que a consulta funciona com caracteres, mas meio defeituosa. Exemplo: se procuro por 1000 num campo numérico, ele vai achar 1000, mas também vai achar 10000, 5100 etc. Idem para campos data. Se for possÃvel fazer uma consulta especÃfica, seria ótimo.
No arquivo filtrar.php na busca (SELECT) é usado o comando LIKE que é igual ao operador $ (contém) do Clipper, então o valor 100 está contido em 10000, 5100, etc.
Fiz uma alteração no arquivo filtrar.php para verificar se a busca é um valor numérico, mas não consegui testar para ver se ia dar certo, pois são tantos arquivos DBF existentes no seu site, que eu fiquei perdido sem saber qual deles tem algum campo numérico para que eu possa escolher para teste.
Agora sobre as datas, nem tentei nada, pois não sei como é o tratamento de campos DATA de arquivos DBF no PHP, que formato é: DD/MM/AAAA, AAAA/MM/DD, AAAA-MM-DD, etc.
Inácio, sem saber estes detalhes acima, fica complicado tentar resolver, mas estou a sua disposição caso encontre alguma saÃda, alguma luz para estes problemas.
Outra coisa, seria bom você estudar os códigos que estão nos arquivos PHP, para tentar entender o que eu fiz, só assim você poderá aprender alguma coisa e não ficar dependendo completamente de ajuda. O Rochinha passou o endereço
www.php.net que tem todas as funções utilizadas no exemplo dele para tratamento de arquivos DBF com PHP, segue abaixo também alguns outros sites que podem ajudar no seu aprendizado:
-
Manual PHP-
Manual MySQL-
Funções HTMLE use e abuse do
www.google.com.br, que é uma fonte inesgotável de informação.
Obs.: os arquivos atualizados estão em anexo na minha mensagem anterior.
Abraços,