mysql fulltext et apostrophe

Eléphanteau du PHP | 23 Messages

12 mai 2009, 21:16

Bonsoir,


Voici mon souci avec un recherche fulltext (MySQL - 5.0.67):

Par ex :

Code : Tout sélectionner

SELECT * FROM `st_films_infos` WHERE MATCH(film_info_titre) AGAINST('amelie' IN BOOLEAN MODE)
MYSQL ne me ressort pas mon titre : FABULEUX DESTIN D'AMELIE POULAIN

ça fonctionne si je fais :

Code : Tout sélectionner

SELECT * FROM `st_films_infos` WHERE MATCH(film_info_titre) AGAINST('d\'amelie' IN BOOLEAN MODE)

Quel moyen j'ai pour que mysql ne considere pas que l'apostrophe est attaché au mot qui le suit ?
des idées

Voici le shema de ma table

Code : Tout sélectionner

CREATE TABLE `st_films_infos` ( `film_info_id` int(11) NOT NULL auto_increment, `film_id` int(11) NOT NULL, `langue_id` tinyint(4) NOT NULL, `film_info_titre` varchar(255) NOT NULL, `film_info_genre` varchar(50) NOT NULL, PRIMARY KEY (`film_info_id`), UNIQUE KEY `film_id` (`film_id`,`langue_id`), FULLTEXT KEY `search` (`film_info_titre`) ) ENGINE=MyISAM AUTO_INCREMENT=345 DEFAULT CHARSET=latin1 AUTO_INCREMENT=345 ;
merci
chbruno

ViPHP
ViPHP | 3300 Messages

13 mai 2009, 00:42

addslashes? :)
Fait du php depuis que ca existe ou presque :)

Invité
Invité n'ayant pas de compte PHPfrance

13 mai 2009, 11:04

merci mais non il y a deja un addslashes au moment de la requete

bruno

Eléphant du PHP | 94 Messages

13 mai 2009, 20:44

Il y a un bug de MySQL concernant les apostrophes dans les recherches fulltext.
Il est résolu dans la version 5.1.6 de MySQL ( http://dev.mysql.com/doc/refman/5.1/en/news-5-1-6.html - 1er paragraphe)

MySQL considère dans ta version que "d'amélie" est un mot entier, c'est pour ça qu'il ne renvoie rien.

Benzouye
Invité n'ayant pas de compte PHPfrance

23 mars 2010, 11:35

Si jee n'ai pas la possibilité de mettre à jour MySQL (raisons pro), comment faire pour rechercher d'amélie alors ?
Sans les apostrophes, la requête ne peut fonctionner ...

Une idée quelqu'un ?

Merci d'avance !