Re: [HS] syntaxe SQL et/ou php
Le vendredi 04 novembre 2011, Jean-Michel OLTRA a écrit :
> Le vendredi 04 novembre 2011, h.wismes@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
Reply to: