Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

André Maretti

Pesquisa [RESOLVIDO]

Recommended Posts

Preciso criar uma consulta a uma tabela onde o usuário vai consultar por cidade!o problema é que minha cidade chama-se Espírito Santo do Pinhal.... aí alguns cadastram como Pinhal, outros como E. S. Pinhal.... Esp. Sto. Pinhal.... e assim vai....Supondo que tenho um registro na tabela onde o campo cidade = E. S. Pinhal.... e a pessoa que for pesquisar digite Espírito Santo do Pinhal....queria que o sistema apresentasse todos os clientes de E. S. Pinhal.... mesmo que o usuário que estiver pesquisando digite Espírito Santo do Pinhal.Entenderam??? rsrsrsComo ficaria minha cláusula SQL????Se alguém puder me ajudar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você teria que fazer isso no PHP, criar a expressão e colocar na query a ser executada.Exemplo:$abreviado = "RJ";... "SELECT ... WHERE estado = 'Rio de janeiro' AND {$abreviado}" ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Adailton... dessa forma não dá....por que se a Pessoa digitar Espírito Santo do Pinhal (%Espírito Santo do Pinhal%) e na tabela estover E. S. Pinhal.... ele não vai achar! :( Oi Eclesiastes....acho que você não entendeu meu probleminha....na verdade o que eu quero é o seguinte:Se a pessoa que estiver pesquisando digitar: "Espírito Santo do Pinhal".... quero que minha pesquisa encontre todos os registros cuja o campo cidade tenha as palavras Espírito OU Santo OU Pinhal....Entendeu?? Tem alguma idéia de como eu posso fazer isso??E me diz uma coisa.... o que seria os "{", "}"... na sua expressão:"SELECT ... WHERE estado = 'Rio de janeiro' AND {$abreviado}" ... ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso {$var} dentro da query para especificar melhor que é uma variável. (Opção minha).

 

Bom, mas para fazer o que desejas, faça isso:

<?php// Função que irá gerar a expressãofunction gerarExpr(&$item, $key, $campo) {   $item = "{$campo} LIKE '$item'";}// Estado$Cidade = "Espírito Santo do Pinhal";// Pegando cada palavra$Pedacos = explode(" ", $Cidade);// Gerando expressãoarray_walk($Pedacos, "gerarExpr", "cidade");// Criando a string com a expressão$expr = implode(" OR ", $Pedacos);// SQL$SQL = "SELECT * FROM tabela WHERE {$expr}"?>

Leitura:

http://www.php.net/explode

http://www.php.net/implode

http://www.php.net/array-walk

 

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Eclesiastes,....A maneira que você postou foi bem como eu tinha imaginado....É que eu achei que pudesse haver uma forma mais simples.... porque no caso desse sistema há uma tela com 10 campos para o usuário escolher como ele quer consultar... aí meu código vai ficar bem extenso né...!Mas valeu... vou na raça programar tudo agora!Brigadão!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.