Le vendredi 04 novembre 2011, Jean-Michel OLTRA a écrit : > Le vendredi 04 novembre 2011, h.wis...@free.fr a écrit... > > Dans le cadre d'une recherche d'informations dans > > une base de données, par mots clé, je n'arrive pas > > à concrétiser ce type de recherche : > > mot clé (motcle) = "biographie richard stallman" > > $query_string = "SELECT * FROM table WHERE infos LIKE '%$motcle%' "; > > Or, le nom "stallman" existe bien dans la base mais > > "biographie richard stallman" n'est pas contenu dans "stallman". > > Comment faire alors le contraire, c'est à dire faire la recherche > > selon "stallman' contenu dans "biographie richard stallman" ? ---------------------- > Quel serveur de bases de données ? : MySQL
> Tu pourrais regarder si les possibilités de la recherche fulltext te > conviennent ? J'ai vu intéressant mais : Erreur de la requete SELECT * FROM table WHERE MATCH (liens , comments) AGAINST ('biographie richard stallman') . > Sinon, sous mysql voir si tu peux utiliser les fonctions de regexp ? > select 'Biographie richard Stallman' regexp '.*Stallman'; : Oui, mais il faut détacher chaque mot automatiquement car $var=variable à contenu aléatoire > Ou bien find_in_set ? > select find_in_set('stallman', 'biographie,richard,stallman'); > jm La solution serait sans doute : - ($var=variable à contenu aléatoire) ici : $var="biographie richard stallman"; - $var = explode(' ', $var); - détacher chaque mot par leur variable : $mot1 , $mot2, $mot3 ... - select find_in_set('$mot1' , '$mot2' , '$mot3') .... et cerise sur le gâteau, supprimer les mots inopportuns : de, le, la, du, ... etc ... Merci Henri -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers debian-user-french-requ...@lists.debian.org En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org Archive: http://lists.debian.org/201111041359.31157.h.wis...@free.fr