Bonjour,
Je fais un moteur de recherche de en autocomplete qui cherche dans plusieurs champs dans ma base.
Pas de problème au niveau de ma requête, mon MATCH AGAINST (nom, prenom) AGAINST ('+Stephane*') me renvoie bien les lignes qui ont Stephane et ou Stéphane
Par contre en php je fais des regex pour mes résultats pour savoir dans quel colonne se trouve mon résultat positif.
Code :
- while($row = mysql_fetch_row($res)) {
- $result = preg_match('#('.$word.'[a-z0-9-]*)#ui', $row[0], $matches);
- foreach($matches as $word) {
- $word = mb_strtolower($word, "UTF-8" );
- $t_find_p[$word] = 1;
- }
- $result = preg_match('#('.$word.'[a-z0-9-]*)#ui', $row[1], $matches);
- foreach($matches as $word) {
- $word = mb_strtolower($word, "UTF-8" );
- $t_find_n[$word] = 1;
- }
- }
|
Le but de la manœuvre étant aussi d'afficher le mot complet, le mec rentre "ste" je lui affiche "prenom : Stéphane"
Ça marche si le mec rentre sa recherche avec accent car ma regex sera bonne, par contre si on rentre sans accent, ma regex ne match pas...
Auriez vous une solution (PHP ou SQL) à mon problème ?
---------------
D3