Bonjour,
j'ai adapté un mini moteur de recherche sur mon site afin de rechercher des chroniques qui sont sur le site en fonction du nom du groupe et des albums.
Le problème, c'est que lorsque je tappe un mot clé composé du genre père nöel, il va me rechercher tous les groupes qui ont et le mot père et le mot noel dans leur nom de groupe/album.
Or je voudrais qu'il me renvoi que les noms de groupes / albums qui ont "pere noel" dans leur nom.
Voilà mon code :
Pouvez-vous m'aider ? Merci d'avance
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
44
45
46
47
48
49
50
51
52 <?php if ($recherche=="" or $recherche==" ") { echo"Vous n'avez pas entré de mot clé." ; } else { $recherche = $_POST['recherche']; // on passe les mots recherchés en minuscules $recherche = strtolower($recherche); $operateur="or" ; // on remplace les ' + , : par des espaces $mots = str_replace('+', ' ', trim($recherche)); $mots = str_replace('\'', ' ', $mots); $mots = str_replace(',', ' ', $mots); $mots = str_replace(':', ' ', $mots); // on place les differents mots dans un tableau $tab = explode(' ' , $mots); //on compte le nbr d'élément du tableau. $nb = count($tab); //on prépare la requête SQL. $sq1 = "select * from chronique where "; $sq1 .= "groupe like '%$tab[0]%' or album like '%$tab[0]%'"; for($i=1 ; $i<$nb; $i++) { if($tab[$i]!="" && strlen($tab[$i])>2) //ne pas prendre un mot vide { // on boucle pour integrer tous les mots dans la requête $sq1.="or groupe like '%$tab[$i]%' or album like '%$tab[$i]%' "; } } // on execute la requête SQL. $result = mysql_db_query('soulknot2',$sq1); if ($result) { if (mysql_num_rows($result) == 0) { // Si il n'y a pas de résultats echo "<center><b>Pas de Résultat</b></center><br>"; } else { echo "<center><b>Résultat(s)</b></center><br>"; while($row = mysql_fetch_array($result)) { echo $row['album']; echo"<BR>" ; } mysql_free_result($result); } } } ?>
Partager