Ir para conteúdo

POWERED BY:

Arquivado

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

Sergio R

Ignorar acentos

Recommended Posts

Bom tarde pessoal!

 

Estou com um problema nas consultas que é o seguinte:

 

Se num campo tiver as palavras Sérgio ou João, e se a pessoa que for consultar digitar sergio, não retorna resultado, pois o mysql não acha, mas se digitar sérgio, dá certo.

Preciso otimisar a consulta para ignorar os acentos das palavras, ou seja, tanto faz digitar sergio ou sérgio que a consulta retorna o resultado. Sei que para isso tem que usar expressões regulares, mas até agora nada consegui.

 

O select que uso atualmente é:

$sql = SELECT * FROM tabela WHERE nome LIKE '%$palavra%' OR endereco LIKE '%$palavra%' order by 'nome';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente isso:

SELECT * FROM tabela WHERE upper(nome) LIKE upper('%$palavra%') ORDER BY 'nome';

Os acentos não serão problema, você estará passando tudo para maiusculas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E passando para maiúsculo o acento é removido?

 

Conheço uma solução, que é convertendo para UTF-8.

 

SELECT * FROM tabela WHERE CONVERT(nome using utf8) LIKE '%$palavra%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece que consegui resolver o problema, mas não sei se foi a melhor opção.

Apenas fiz o seguinte:

descomentei esta linha do php.ini

; PHP's built-in default is text/html

;default_mimetype = "text/html"

default_charset = "iso-8859-1"

 

A partir dai, o php escreve no mysql literalmente o que eu escrevo, sem converter os acentos, parece que resolveu o meu problema, mas ainda tenho dúvida se essa é uma boa opção, pois não conheço bem o php.ini, foi um chute que deu certo.

 

Muito obrigado pela ajuda, pessoal. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

 

tenho esta consulta "SELECT distinct RTNO, nacionalidade, sexo, datanasc, sectact, situacao, dataatend FROM act Where nacionalidade like '%"&request.form("search")&"%'"

 

como faço para quando coloco uma nacionalidade na caixa de procura me retorne os registos com nacionalidade com acento e sem acento. Ou seja, se meter por exemplo albânia e na BD tiver registos com albânia e albania retorne os dois.

 

A BD é access.

 

estou a programar em ASP.

 

Podem me ajudar sff?

 

obrigado

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.