Bonjour,
Je fait un petit moteur pour une section de mon site, il fonctionne parfaitement si je ne recherche qu'un mot clefs, dès qu'il y 2 mots clefs ou plus, il me retourne 0 résultat et je ne comprends pas pourquoi
Si je cherche le terme "cinéma" c'est ok
Si je cherche le terme "bleu" c'est ok
Si maintenant je cherche le terme "cinéma bleu" => 0 résultat grrrrr...
Je dois donc faire une erreur mais je sais pas ou et comment, si vous avez la bonté de regarder le code et me dire ce que j'ai fait de faux, c'est volontiers car la je patauge..
D'avance merci
Yule
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <form name=f action="recherche.php" method="get"> <p>Rechercher un terme du glossaire ?<br></p> <input type="text" size="30" name="search" value="<? echo stripslashes($keywords);?>"> <INPUT type="submit" value="Go"> <?php error_reporting(0); // nettoyage rapide $keywords = isset($_GET['search']) ? $_GET['search'] : ''; $keywords = htmlspecialchars(chop($keywords)); $keywords = str_replace(" ","+",chop($keywords)); // tous dans un tableau $tablo = explode ('|',$keywords); // la requête $requete2 = "SELECT id, titre, description FROM $tablelexique WHERE (titre LIKE '%$keywords%' OR description LIKE '%$keywords%') ORDER BY id ASC LIMIT 0,10"; $result2 = mysql_query($requete2) or die(mysql_error().' $requete2'); $i=0; while($ligne = mysql_fetch_array($result2)) { $id = $ligne["id"]; $titre = $ligne["titre"]; $description = $ligne["description"]; //sortie du tableau $keywords = implode('|', $tablo); // coloration du mot clef $motifs='`^|\b(('.$keywords.')?)\b|$`si'; $sorties='<font color="#398F48" size="3"><b><i>$1</i></b></font>'; $titre = preg_replace($motifs,$sorties,$titre); $description = preg_replace($motifs,$sorties,$description); // affichage du résultat echo"<p>» <a href='$nomsite0-$rssuri.html'><b>$titre</b></a><br> $description<br></p>"; $i++; } ?>
Partager