Ir para conteúdo

POWERED BY:

Arquivado

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

maicon_m

Pesquisar com acento ou sem

Recommended Posts

buenas!

 

Tenho um campo de pesquisa em meu site. O cara digita "João" e clica em pesquisar. Então mostra os dados do João, pois é assim que esta cadastrado no bando de dados (com o acento).

 

Contudo, se ele digita "Joao", a pesquisa não retorna resultado algum.

 

 

Alguém pode me dar uma idéia de que função utilizar ou alguma outra maneira?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você usa MySQL ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode pedir para digitarem sempre com acento oras! hehehe... brincadeirinha!

 

Eu não se como você organizou seu query, eu faria isso usando a clausula LIKE:

SELECT * FROM pessoas WHERE nome LIKE "jo_o"

Observe que ao invés do caractere 'ã', eu coloquei um '_', que na sintaxe do LIKE representa um caracter qualquer, retornando assim os joões. Agora é você usar uma função com preg_replace para substituir todos os caracteres acentuados da consulta por _.

 

Sacou, muchacho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tendo ou não acento, a string será encontrada.

 

SELECT campos FROM tabela WHERE nome LIKE "%str_com_acento%";

Isso encontraria os registros com 'str_com_acento', 'str_com_acênto', 'str_com_acénto', etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois aí que está o problema marcio.sfs. Com acento ele acha tranqüilo, mas...

 

sem acento não acha de jeito e maneira. o que procuro é uma maneira de talvez utilizar um padrão para ir substituindo a palavra adicionando acentos ou um outro jeito que não exija tanto tráfego..

 

A grande questão é que ele consiga achar tanto com acento quanto sem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bah giesta ainda não consegui....

 

segue o código que uso para pesquisa:

 

"SELECT * FROM cadastro_empresa WHERE campo like \"%$var%\" order by empresa"

e aproveitando.... tenho um text para pesquisa e o botão Pesquisar. Se eu digito o termo e pressiono enter ele não efetua a busca... só que clico no Pesquisar...

 

obrigado para quem esta tentando ajudar... http://forum.imasters.com.br/public/style_emoticons/default/worshippy.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

collation utf8 é seu amigo maicon_m (ou um 'typecast' como o giesta sugeriu). Tem que ver qual a codificação da sua página.

veja se a conexão da sua database está configurada corretamente, não sei porque raios normalmente está pra latin1_swedish_ci. Caso não esteja, tente colocá-la em UTF-8

 

SET NAMES 'utf8'

SET CHARACTER SET 'utf8'

 

Normalmente, esse detalhe passa desapercebido, e a database numa linguagem, a codificação da página em outra, pode ter certeza que acentos vão ser o inferno pra se "resolverem"

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.