Salut à tous,
Je suis passé en v4 sur MySQL pour les besoins d'un moteur de recherche (recherche fulltext en booléen) et j'ai un petit souci :
1) Voici ma requête :
$query = "SELECT idunique,titre,lien, MATCH (texte) AGAINST ($var_requete) AS cpt FROM annonces WHERE MATCH (texte) AGAINST ($var_requete) ORDER BY cpt DESC";
2) Le texte recherché($var_requete) est soit :
-$var_requete = "'+".eregi_replace("([[:space:]])"," +",$var_requete)."' in boolean mode"; Pour une recherche avec des résultats contenant tous les mots.
-$var_requete = "'".$var_requete."' in boolean mode"; Pour une recherche avec au moins un des mots
-$var_requete = "'\"".$var_requete."\"' in boolean mode"; Pour une recherche exacte sur l'expression
Mon souci est que quand je recherche "l'édition" par exemple avec la recherche exacte sur expression (n°3) j'ai une erreur MySQL car le guillemet de "l'édition" pose souci.
J'ai testé avec des slashes ou sans mais ça ne change rien.
AGAINST ('"l\'édition"' in boolean mode) ne fonctionne pas
AGAINST ('"l'édition"' in boolean mode) ne fonctionne pas
AGAINST ('"l\\\'édition"' in boolean mode) ne fonctionne pas
J'ai tenté de changer les ' qui entourrent l'expression à rechercher en ` ou ( mais ça ne fonctionne pas. Il n'accepte que les ' !!!!!!!!!!!!!
Est-ce que quelqu'un a une idée pour régler ce problème. Je suis allé sur MySQL (le site) et il n'y à rien !!!!!
Merci à tous
@+
Partager