
titi2111
|
Réponse acceptée !
J'ai finalement trouvé une solution:
La fonction pour enlever les accents des mots clefs de recherche: function enleve_accent($chaine){ $search = array ('@[ÈÉÊËèéêë]@i','@[ÀÁÂÃÄÅàáâãäå]@i','@[ÌÍÎÏìíîï]@i','@[ÙÚÛÜùúûü]@i','@[ÒÓÔÕÖØòóôõöø]@i','@[Çç]@i','@[ÿ]@i','@[Ññ]@'); $replace = array ('e','a','i','u','o','c','y','n'); return preg_replace($search, $replace, $chaine); }
La fonction pour remplacer les &...; dans la recherche sql: function enleve_accent_sql($chaine) { $search=array('È','É','Ê','Ë','è','é','ê','ë','À','Á','Â','Ã','Ä','Å','à','á','â','ã','ä','å','Ì','Í','Î','Ï','ì','í','î','ï','Ù','Ú','Û','Ü','ù','ú','û','ü','Ò','Ó','Ô','Õ','Ö','ò','ó','ô','õ','ö','Ç','ç','ÿ'); $replace=array('e','e','e','e','e','e','e','e','a','a','a','a','a','a','a','a','a','a','a','a','i','i','i','i','i','i','i','i','u','u','u','u','u','u','u','u','o','o','o','o','o','o','o','o','o','o','c','c','y'); for ($i=0;$i<$c=count($search);$i++) { $chaine = "REPLACE(($chaine),'".htmlentities($search[$i],ENT_QUOTES)."','$replace[$i]')"; } return $chaine; }
$mot = enleve_accent($_POST["mot"]);
Recherche du mot dans la base: $query = "SELECT * FROM fiches_ouvrages WHERE ".enleve_accent_sql(COLONNE)." LIKE \"%$mot%\")";
C'est pas tres élégant mais ça fonctionne... Avertissez moi si vous connaissez une autre méthode.
|