Ir para conteúdo

POWERED BY:

Arquivado

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

daya

[Resolvido] Filtros em consultas

Recommended Posts

Bom dia pessoal!

será que alguém poderia me ajudar? estou fazendo alguns relatórios e preciso que a consulta retorna os resultados independente se for digitado letras em maiusculo ou minusculo.

Ex.: consultar: a

retorna: a e A

 

Desde já obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai ter que usar o comando SQL -> LIKE +/- assim:

 

$teste = 'a';
$query = mysql_query("SELECT * FROM user WHERE nome LIKE '%" . $teste . "%'");

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom isso eu já fiz, mas caso no banco eu tenho dados que comecem com letra maiuscula e eu fizer uma consulta com letras minusculas ele não me retorna nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho quase certeza de q o like nao direfe MAIUSCULO de minusculo.

 

Outra coisa.. se quiser que começe com a letra especifica, utilize o LIKE assim: nome LIKE '".$teste."%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

é eu também achava que não, mas minhas consultas não aparecem se não estiverem digitadas igualmente com os dados do banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmmm é mesmo o like é case sensitive.

 

vou dar uma pesquisada pra ver se acho a solução...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu achei essa aqui não testei direito, mais parece que funciona...

 

$sql = "SELECT * FROM user WHERE lower(nome) LIKE lower('%$teste%')";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria mais facil que ao dar o insert antes você passe a string toda para minuscula usando o strtolower()

Dai quando você pesquisar você faz a mesma coisa.

 

Uma vez o dba daqui me falou que existe uma opção que faz o banco ignorar case sensitive, mas ai já é configuração de banco, creio que isto você não conseguira com código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, provalmente isso é configuração do BD, pq tem q voltar os resultados, sejam MAISCULOS ou minusculos. Veririque a configuração do BD! Ou, pra "quebrar-um-galho" (não recomendado) você pode usar uma função pra fazer duas condições de pesquisa, como por exemplo:

 

 

$condicao1 = 'a';
$condicao2 = strtoupper($condicao1);

$sql = SELECT * FROM users WHERE Nome LIKE '%$condicao1%' OR Nome LIKE '%$condicao2%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigada pessoal já consegui resolver o problema usando o LOWER, já havia tentado ele antes mas deixava um espaço em branco entre ele e a variavel e o mysql não estava reconhecendo.

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.