8791 sujets

Développement web côté serveur, CMS

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 :
<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)
Salut,

j'aurais bien vu un problème de connexion en ISO-8859-1 (utilisé par défaut en général) et du coup il aurait suffit de rajouter juste après le mysql_select_db
mysql_query('SET NAMES UTF8');
mais dans ce cas tu aurais certainement des caractères incorrects en affichage. Smiley murf
hélas (ou heureusement? Smiley langue ) tu as raison ! en fait chaque fois que je récupère un élément qui s'affiche mal, je lui ajoute utf8_encode() dessus... Erreur de débutant... Snif...

Merci !