Bonjour,
Il y a eu de nombreux sujets sur ce problème, mais les solutions ne sont pas celles que je cherche : j'ai un champ recherche tout simple :
Je lance ma requête :
Seulement voila : alors que dans ma base, ma table est en UTF8 et le texte inscrit tel quel (par exemple : "Aâ"), si je cherche :"aa" je trouve, si je cherche "Aa" je trouve, mais dès qu'il y a un accent, ça ne marche plus, même orthographié correctement.
Avec un echo de la recherche, je récupère bien "Aâ", et si j'essaie un nettoyage ça ne marche pas non plus:
avec
J'ai essayé aussi de ne pas utiliser utf8_encode dans la fonction, j'ai essayé de l'utiliser dans la requete seule aussi ($recherche = utf8_encode($recherche);), mais ça ne veux pas... snif...
Modifié par montoumes (21 Aug 2008 - 16:09)
Il y a eu de nombreux sujets sur ce problème, mais les solutions ne sont pas celles que je cherche : j'ai un champ recherche tout simple :
<input type="text" value="rechercher..." id="recherche" name="recherche" accesskey="4"/>
Je lance ma requête :
$recherche = $_POST['recherche'];
$requeterecherchenom = mysql_query("SELECT * FROM entrees WHERE entree_nom LIKE '%".$recherche."%' ORDER BY entree_nom ASC");
Seulement voila : alors que dans ma base, ma table est en UTF8 et le texte inscrit tel quel (par exemple : "Aâ"), si je cherche :"aa" je trouve, si je cherche "Aa" je trouve, mais dès qu'il y a un accent, ça ne marche plus, même orthographié correctement.
Avec un echo de la recherche, je récupère bien "Aâ", et si j'essaie un nettoyage ça ne marche pas non plus:
function nettoyage($chaine) {
$chaine = utf8_encode($chaine);
$chaine = str_replace ( 'à', 'a', $chaine );
$chaine = str_replace ( 'â', 'a', $chaine );
$chaine = strtolower($chaine);
return $chaine;
}
avec
$recherche = nettoyage($recherche);
J'ai essayé aussi de ne pas utiliser utf8_encode dans la fonction, j'ai essayé de l'utiliser dans la requete seule aussi ($recherche = utf8_encode($recherche);), mais ça ne veux pas... snif...
Modifié par montoumes (21 Aug 2008 - 16:09)