Ir para conteúdo

POWERED BY:

Arquivado

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

alanrg.83

Problemas com um LIKE

Recommended Posts

nossa gente to precisando de um sisteminha de busca mais ta dificil em!!

Seguinte tenho doi cadastros por exemplo

 

Alan Rogério;

Univercidade Estadual do Maringá UEM

 

Do geito que fiz meu select LIKE, se eu procuro por "Alan" ou "Universidade" ele acha os dois registros, mas se procuro por alan, Rogério ele não acha o primeiro registro. E se procurar por Estadual, UEM, uem, univercidade ele nao achao segundo.

 

Resumindo se nao escrever o primeiro nome do registro e do geitinho que esta ele não achanada!!! Como concerto isso!!

 

Meu select:

SELECT * FROM prof WHERE nomeprof LIKE '%$_SESSION[busca]%', LIMIT $inicio, $limite, order by nomeprof

Compartilhar este post


Link para o post
Compartilhar em outros sites

meu deus cara, você tá na faculdade mesmo, escrevendo desse jeito? O_O desculpa mas não teve como não reparar no semi-analfabetismo

veja se o collation da sua tabela termina em "ci", tipo latin1_general_ci. Ci significa "case insensitive", e não "cs", case-sensitive, dessa maneira "alan" e "ALAN" serão a mesma coisa. Outra coisa, é escolher um encoding tipo o utf-8 que facilita a busca de palavras acentuadas

 

SELECT * FROM prof WHERE nomeprof LIKE '%{$_SESSION[busca]}%' LIMIT $inicio,$limite ORDER BY nomeprof

 

Se tudo estiver correto, apenas entrando com "al", achará o campo 'alan' e 'uni' achará o campo da 'universidade'

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa gente to precisando de um sisteminha de busca mais ta dificil em!!

Seguinte tenho doi cadastros por exemplo

 

Alan Rogério;

Univercidade Estadual do Maringá UEM

 

Do geito que fiz meu select LIKE, se eu procuro por "Alan" ou "Universidade" ele acha os dois registros, mas se procuro por alan, Rogério ele não acha o primeiro registro. E se procurar por Estadual, UEM, uem, univercidade ele nao achao segundo.

 

Resumindo se nao escrever o primeiro nome do registro e do geitinho que esta ele não achanada!!! Como concerto isso!!

 

Meu select:

SELECT * FROM prof WHERE nomeprof LIKE '%$_SESSION[busca]%', LIMIT $inicio, $limite, order by nomeprof

você pode estar usando um colate que seja case sensitive... de uma olhada no colate do seu campo nome

para evitar isso use os colates case_insensitive (_ci)

ou antes de passar a consulta passe o campo e o valor com upper(), aih ele joga tudo pra caixa alta e indifire se é sensitive ou nao o seu colate

 

SELECT * FROM prof WHERE upper(nomeprof) LIKE upper('%$_SESSION[busca]%'), LIMIT $inicio, $limite, order by nomeprof

 

lembre-se que busca com %texto não favorece os índices da tabela (se é que tenha criado um indice rs)

 

abraç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.