Bonjour à tous,

Étant monté à 48° de température interne, j'me dois d'abdiquer et de demander conseil.

Je fais un moteur de recherche pour mon site. Je souhaiterai trouver le mot"cérémonie" lorsque je tape le mot "ceremonie" ... mais bon voilà j'ai lu les regexp, fais des tests, avancer, reculer, me suis perdu 3 fois ...et suis arrivé ici...

Bref un ptit coup de main pour la gestion des accents dans le resultat de ma requête ne serait pas de refus...
Un grand Merci.
Karpe,

Mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
$nombre = 20;  
// si limite n'existe pas on l'initialise à zéro
if (!$limite) $limite = 0; 
// on cherche le nom de la page.    
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts["basename"];
//=========================================    
// connection à la DB
//=========================================
 
$link = mysql_connect("$host", "$username", "$password");
mysql_select_db ("$db_name");
 
 
$recherche = mysql_real_escape_string(htmlspecialchars($_POST['recherche'])); //sécurisation des variables
 
//$recherche = str_replace(array('é', 'è', 'ê'), 'e', $recherche);
//function delaccents($chaine){
 //   $chaine = ereg_replace('[àâäåãáÂÄÀÅÃÁæÆ]','a', $chaine);
 //   $chaine = ereg_replace('[çÇ]','c', $chaine);
//    $chaine = ereg_replace('[éèêëÉÊËÈ]','e', $chaine);
 //   $chaine = ereg_replace('[ïîìíÏÎÌÍ]','i', $chaine);
 //   $chaine = ereg_replace('[ñÑ]','n', $chaine);
 //   $chaine = ereg_replace('[öôóòõÓÔÖÒÕ]','o', $chaine);
 //   $chaine = ereg_replace('[ùûüúÜÛÙÚ]','u', $chaine);
 //   $chaine = ereg_replace('[ÿ]','y', $chaine);
 //   return $chaine;
//}
 
$categorie = $_POST['categorie']; //sécurisation des variables
$localisation = $_POST['localisation']; //sécurisation des variables
 
$empty=1;			  
if ($categorie && $empty)
{
$selecat = "AND categorie='$categorie'";
}
else
{
$selecat = "";
}
 
 
 
if ($localisation == $_GET['id_region'])
{
$selecloc = "AND region='$localisation'";
}	
//si localisation est egal à idregion = affiche region
 
elseif (($localisation == $_GET['f'])  && (!($localisation == '')) && (!($localisation == $_GET['id_region'])))
{
$selecloc = "";
}
//ou sinon localisation est egal à f et n'est pas vide = affiche france
 
elseif ((!($localisation == $_GET['id_region'])) && (!($localisation == '')))
{
$selecloc = "AND departement='$localisation'";
} 
//ou sinon localisation n'est pas egal à idregion et n'est pas vide = affiche departement
 
elseif ($localisation == '')
{
$selecloc = "AND region='". $_GET['id_region']. "'";
}
// si rien de tout ca on affiche la region 
 
 
 
 
$and_ou_or = 'AND'; //on utilisera AND dans la boucle
 
 
$mots = explode(" ", $recherche); //séparation des mots
 
$nombre_mots = count ($mots); //compte le nombre de mots
$valeur_requete = '';
for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) //tant que le nombre de mots de la recherche est supérieur à celui de la boucle, on continue en augmentant le nombre de mots de 1 à chaque fois
{
$valeur_requete .= '' . $and_ou_or . ' titre LIKE \'%' . $mots[$nombre_mots_boucle] . '%\''; //modification de la variable $valeur_requete
}
$valeur_requete = ltrim($valeur_requete,$and_ou_or); //suppression de AND ou de OR au début de la boucle
//=========================================    
// requ&ecirc;te SQL qui compte le nombre total 
// d'enregistrements dans la table.
//=========================================
$select = "SELECT count(idannonce) FROM annonces WHERE $valeur_requete $selecat $selecloc AND statut='oui' " ;
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];
//=========================================
// v&eacute;rifier la validit&eacute; de notre variable 
// $limite;
//=========================================
$verifLimite= verifLimite($limite,$total,$nombre);
// si la limite pass&eacute;e n'est pas valide on la remet &agrave; z&eacute;ro
if(!$verifLimite)  {
    $limite = 0;
}
$selection_recherche = mysql_query("SELECT *
FROM annonces
WHERE $valeur_requete $selecat $selecloc AND statut='oui' ORDER BY idannonce DESC LIMIT $limite,$nombre"); //requête avec le résultat de la boucle dedans
 
$nombre_resultats = mysql_num_rows($selection_recherche); //compte le nombre d'entrées sélectionnées par la recherche
 
 
if ($nombre_resultats == 0) //s'il n'y a pas de résultat
{
echo '<div id=infoann align="left"><span class="contenus16blanc">Aucune annonce correspondant à votre recherche.</span></div>';
}
else //il y a au moins un résultat
{
echo '<div id=infoann align="left"> <span class="contenus16bleuciel">  '  . $total . '</span><span class="contenus16blanc"> annonce(s) correspondant à votre recherche <br /><br /></span></div>'; //nombre de résultats
 
 
if($total) {
while($resultats = mysql_fetch_array($selection_recherche) ) //boucle affichant les résultats
{