Query MySQL que seja indiferente a acentos, ~, ç, etc...

Enviada por Folken Laccour Fanel 
Folken Laccour Fanel
Query MySQL que seja indiferente a acentos, ~, ç, etc...
22 de September de 2005 às 03:04PM
Preciso de uma query que seja indiferente a acentos, sinais gráficos ou ç na pesquisa, isso é, tanto faz usar João ou Joao, ação ou acao.

Eu sei que isso tem que ser feito com expressão regular. Alguém tem uma noção?

Obrigado!
Milene
Re: Query MySQL que seja indiferente a acentos, ~, ç, etc...
27 de September de 2005 às 08:45PM
Vc conseguiu resolver??? Estou tendo este problema tb, até consegui usando a função replace, só que preciso usá-la pra cada letra acentuada... Vc achou uma fórmula mágica! Se puder... compartilhe!!!

Obrigada!!
Folken Laccour Fanel
Re: Query MySQL que seja indiferente a acentos, ~, ç, etc...
28 de September de 2005 às 05:25PM
Resolvi sim Milene. Fiz o seguinte:

$padrao=array("/(a|á|à|ã|â)/" ,"/(e|é|ê)/","/(i|í|î)/","/(o|ó|õ|ô)/","/(u|ú|û|ü)/","/(c|ç)/");
$substituicao=array("[aáàãâ]" ,"[eéê]" ,"[iíî]" ,"[oóõô]" ,"[uúûü]" ,"[cç]" );

$string = 'nome_do_campo REGEXP "'.preg_replace($padrao, $substituicao, $string).'"';

$sql='SELECT * FROM table WHERE '.$string.'';

Se houver mais algum sinal gráficou ou o que seja, é só adicionar ao array de padrões e de substituição.

Abraço!
Milene
Re: Query MySQL que seja indiferente a acentos, ~, ç, etc...
29 de September de 2005 às 02:14AM
Muito obrigada!!!

Fiz e deu "super certo"...

Obrigada!!!
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.