Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fiz um sistema de busca no dreamweaver usando php/mysql, mas também estou tendo problemas com acentuação. Meu SQL está assim: SELECT * FROM tabela WHERE campo LIKE '%search%' (sendo que search é uma variavel que pega o valor inserido no formulario de busca pelo parametro de URL). No BD os caracteres estão certos, com acentos, maiúsculas e minúsculas..
Mas quando testo o mecanismo, se digito um palavra acentuada, por exemplo "salário", ele não retorna nenhum resultado. Já se digito a mesma palavra sem acento, "salario", ele traz todos os resultados que tem a palavra "salário", "salario", "SALÁRIO", etc... Todavia, quando realizo a busca direto no BD, usando o PHPmyAdmin, ele encontra a palavra digitada com ou sem acentos.
Isso me leva a crer que eu preciso de uma função no meu php, na página do formulário de pesquisa, que altere os caracteres com acentos digitados pelo usuário, em caracteres simples. Estou certo?
Se for isso, segue abaixo o código de minha página onde está o formulário de busca, e uma função que encontrei para alterar cacarteres. Alguém poderia adaptá-lo pra mim, pois não faço idéia de como trabalhar com o código?
Obrigado!
PÁGINA DE BUSCA
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p>Busca</p>
<form id="form1" name="form1" method="get" action="resultado.php">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="79" height="30">pesquise</td>
<td width="421" height="30"><label>
<input name="search" type="text" id="search" size="30" />
</label></td>
</tr>
<tr>
<td height="30"> </td>
<td height="30"><label>
<input type="submit" name="Buscar" id="Buscar" value="Buscar" />
</label></td>
</tr>
</table>
</form>
<p> </p>
</body>
</html>
FUNÇÃO
<?php
function novaString($string) {
$string = trim($string);
$string = strtolower($string);
$string = ereg_replace( '[ÁÀÂÃÄ]', 'A', $string);
$string = ereg_replace( '[áàâãäª]', 'a', $string);
$string = ereg_replace( '[ÉÈÊË]', 'E', $string);
$string = ereg_replace( '[éèêë]', 'e', $string);
$string = ereg_replace( '[ÍÌÎÏ]', 'I', $string);
$string = ereg_replace( '[íìîï]', 'i', $string);
$string = ereg_replace( '[ÓÒÔÕÖ]', 'O', $string);
$string = ereg_replace( '[óòôõöº]', 'o', $string);
$string = ereg_replace( '[ÚÙÛÜ]', 'U', $string);
$string = ereg_replace( '[úùûü]', 'u', $string);
$string = str_replace( 'Ç', 'C', $string);
$string = str_replace( 'ç', 'c', $string);
$string = str_replace( '´', '', $string );
$string = str_replace( '`', '', $string );
$string = str_replace( '~', '', $string );
$string = str_replace( '^', '', $string );
$string = str_replace( '¨', '', $string );
$string = str_replace( '-', '', $string );
$string = str_replace( '_', '', $string );
$string = str_replace( ' ', '', $string );
$string = substr($string, 0, 20);
return $string;
}
$nome = 'PEDRO DE ALCÂNTARA FRANCISCO ANTÔNIO JOÃO CARLOS XAVIER DE PAULA MIGUEL RAFAEL JOAQUIM JOSÉ GONZAGA PASCOAL CIPRIANO SERAFIM DE BRAGANÇA E BOURBON';
print novaString($nome);
/* se quiser criar a pasta é só fazer isso abaixo
mkdir(novaString($nome));
*/
?>
Carregando comentários...