je cherche un moteur recherche plus précis

virginie
Invité n'ayant pas de compte PHPfrance

05 mai 2010, 06:33

Bonjour, j'utilise actuellement le script ci dessou pour trouver les mots dans ma bdd, le soucis c'est que si je tapes vélo par exemple il va aussi me sortir velour ou enveloppe etc... Puis je trouver un terme plus précis dans ma requete. Merci pour votre aide.
 
$sql = mysql_db_query($sql_bdd,"SELECT * FROM ". $rechtable ." WHERE titre LIKE '%".$recherche."%' ;",$db_link) or die(mysql_error());
 

ViPHP
ViPHP | 2287 Messages

05 mai 2010, 09:03

Bonjour,

Le caractère % a une valeur de joker pour l'opérateur LIKE pour mysql, comme écrit dans le manuel. A priori c'est par là que tu devrais chercher ;)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

ViPHP
ViPHP | 4039 Messages

05 mai 2010, 09:38

like N'EST PAS UN MOTEUR DE RECHERCHE

Bon, il fallait que je le dissasse.

Pour un vrai moteur de recherche, voir ici.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

virginie
Invité n'ayant pas de compte PHPfrance

14 mai 2010, 21:49

Ok merci, je viens de trouver pour aider les autres

annonce c'est votre table ou vous cherchez

titre et description sont les colonnes ou vous cherchez

velo c'est le mot que vous recherchez
$sql = mysql_db_query($sql_bdd,"SELECT * FROM annonce WHERE MATCH (titre,description) AGAINST ('+velo' IN BOOLEAN MODE) ORDER BY id DESC LIMIT ". $_GET['debut'] .",". $nb_affichage_par_page ." ;",$db_link) or die(mysql_error());
Comment pourrais je ajouter une couleur dans le résultat à chaque fois que le mot velo s'affiche

ViPHP
ViPHP | 5462 Messages

14 mai 2010, 23:10

avec un str_replace, genre
str_replace('velo', '<span style="color:#ff8888">velo</span>');

virginie
Invité n'ayant pas de compte PHPfrance

15 mai 2010, 11:36

Ok merci pour ton aide mais
str_replace('velo', '<span style="color:#ff8888">velo</span>');
j'ai tester plusieurs fois et je n'arrive pas à le faire fonctionner dans while et avec une variable variable à la place de vélo
$sql = mysql_db_query($sql_bdd,"SELECT * FROM annonce WHERE MATCH (titre,description) AGAINST ('+$recherche' IN BOOLEAN MODE) ORDER BY id DESC LIMIT ". $_GET['debut'] .",". $nb_affichage_par_page ." ;",$db_link) or die(mysql_error());
 	
while ($data = mysql_fetch_array($sql))