[MySQL] requete en omettant un mot

requete en omettant un mot [MySQL] - Programmation

Marsh Posté le 26-11-2001 à 22:54:36    

slt,
 
c'est pour un moteur de recherche.
 
si on entre par exemple:
indien +navajo -iroquoi
 
il me met les champs contenant indien+navajo mais pas avec iroquoi...
 
si qqn peut m'aider...

Reply

Marsh Posté le 26-11-2001 à 22:54:36   

Reply

Marsh Posté le 26-11-2001 à 22:58:06    

tu peut etre un peu plus clair ?

Reply

Marsh Posté le 26-11-2001 à 23:40:01    

une petite expression régulière ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 26-11-2001 à 23:46:10    

Sh@rdar a écrit a écrit :

une petite expression régulière ?  




 
ou where mot=indien OR mot=navaro AND NOT mot=iroquoi...


---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Marsh Posté le 26-11-2001 à 23:49:19    

Suri a écrit a écrit :

 
 
ou where mot=indien OR mot=navaro AND NOT mot=iroquoi...  




 
hum...  
ça c'est le résultat final, mais pour traiter les mots tapés dans le moteur ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 27-11-2001 à 00:02:20    

Sh@rdar a écrit a écrit :

 
 
hum...  
ça c'est le résultat final, mais pour traiter les mots tapés dans le moteur ?  




 
ben j'ai rien compris alors...  :sweat:


---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Marsh Posté le 27-11-2001 à 00:12:56    

disons que les mots tapés dans le moteur changent (ils sont tapés par l'utilisateur) donc il faut un système permettant d'isoler les mots avec un - devant de manière à les écarter lors de la recherche (comme ta query).
 
mais pour ça faut d'abord les traiter, je suggère donc une expression régulière  ;) , on découpe au niveau des espaces, on récupère les différents mots, avec un + devant on mets LIKE '%keyword%' et avec un - moins NOT LIKE '%keyword2%'


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 27-11-2001 à 01:47:38    

Ah ouais!! un parser quoi!
Putain c vraiment bien le C qd on y pense..;
le truc le plus dur c de se decoller des pointeurs apres..:(


---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Marsh Posté le 27-11-2001 à 08:35:57    

Sh@rdar a écrit a écrit :

mais pour ça faut d'abord les traiter, je suggère donc une expression régulière  ;) , on découpe au niveau des espaces, on récupère les différents mots, avec un + devant on mets LIKE '%keyword%' et avec un - moins NOT LIKE '%keyword2%'  



WHAT ?????? alors qu'un explode(" ", ...) suffit bien ! :D

Reply

Marsh Posté le 27-11-2001 à 09:16:18    

un split ou un explode oui, mais imagine une regexp qui te remplace les " +" par des "AND mot like '%\\1%'" et les " -" par des "AND NOT mot like '%\\1%'".
en 2 lignes tu as fini... mais les regexp et moi :D :(
 
un truc du genre (non testé et surement faux!!)
$critere= eregi_replace("+([:alnum:]*)"," AND mot like '%\\1%'", $critère);
$critere= eregi_replace("-([:alnum:]*)"," AND mot NOT like '%\\1%'", $critère);
 
à méditer ;)

 

[edtdd]--Message édité par ethernal--[/edtdd]

Reply

Marsh Posté le 27-11-2001 à 09:16:18   

Reply

Marsh Posté le 27-11-2001 à 09:23:50    

ethernal > :jap: effectivement, c'est plus simple que je ne le pensais.

Reply

Marsh Posté le 27-11-2001 à 22:47:06    

merci à tous, mais j'avais trouvé tout seul comme un grand en matant dans le fichier search.php de Phorum, qui propose une telle fonctionnalité...
 
@+

Reply

Marsh Posté le 27-11-2001 à 23:42:50    

vive les regexp !!!!!!!!  :D  
mine de rien c'est puissant ces petites bêtes
 
mention très bien pour ethernal ;)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 28-11-2001 à 11:54:15    

Sh@rdar> merci :D mais l'idée vient de toi  :jap:  
 
Haazheel> tu pourrais me donner cette puissante regexp pour ma culture générale stp ? ;) on sait jamais que j'en ai besoin :lol:

Reply

Marsh Posté le 28-11-2001 à 22:34:22    

ethernal a écrit a écrit :

Sh@rdar> merci :D mais l'idée vient de toi  :jap:  
 
Haazheel> tu pourrais me donner cette puissante regexp pour ma culture générale stp ? ;) on sait jamais que j'en ai besoin :lol:  




 
Pas de problèmes...
 
Mais je sais pas quand j'aurai le temps de m'y consacrer... Fin de semaine au grand maximum...

Reply

Marsh Posté le 29-11-2001 à 09:50:06    

utilise les recherches booleennes de mysql 4


---------------
Don't blink. Don't even blink. Blink and you're dead. They are fast, faster than you could believe, don't turn your back, don't look away, and DON'T BLINK. Good luck.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed