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...
ethernal
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:
Sh@rdar
vive les regexp !!!!!!!! :D mine de rien c'est puissant ces petites bêtes
mention très bien pour ethernal ;)
haazheel
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é...
@+
youdontcare
ethernal > :jap: effectivement, c'est plus simple que je ne le pensais.
ethernal
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]
youdontcare
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
Suri
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..:(
Sh@rdar
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%'
Suri
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:
Sh@rdar
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 ?
Suri
Sh@rdar a écrit a écrit :
une petite expression régulière ?
ou where mot=indien OR mot=navaro AND NOT mot=iroquoi...
Sh@rdar
une petite expression régulière ?
Clubic
tu peut etre un peu plus clair ?
haazheel
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...