bonjour,
j'essaie de faire une boucle toute simple pour un moteur de recherche par mot clef. Quand je rentre 2 mots ou plus, il n'y a que le premier qui est reconnu. Qqn pourrait m'aider ?
merci beaucoup, voici le code
et voilà ce qu'affiche la requête (echo $sql
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
53 <?php // on se connecte à notre base $base = mysql_connect ( ); mysql_select_db ( ); $_SESSION['motsclef']=$_POST['motsclef'] ; // On recupère la variable motsclef $motsclef = $_SESSION['motsclef']; // On recupère la méthode $_SESSION['methode']=$_POST['methode'] ; $methode = $_SESSION['methode']; // On explose les mots clefs // en tronquant à chaque espace $motsclef1 = explode(" ",$motsclef); // On compte le nombre de mots entrés par le visiteur $nbr_mots = count($motsclef1); // On recherche dans la table si qqchose ressemble au premier mot clé $sql = "SELECT * FROM aide_ac WHERE (specifique LIKE '%$motsclef1[0]%' OR description LIKE '%$motsclef1[0]%' OR adresse LIKE '%$motsclef1[0]%' OR tarifs LIKE '%$motsclef1[0]%' OR intervenants LIKE '%$motsclef1[0]%')"; // On fait une boucle pour les autres mots clés $i = "1"; while ($i<$nbr_mots) { // On specifie la methode OR ou AND et on recherche $sql .= " $methode (specifique LIKE '%$motsclef1[i]%' OR description LIKE '%$motsclef1[i]%' OR adresse LIKE '%$motsclef1[i]%' OR tarifs LIKE '%$motsclef1[i]%' OR intervenants LIKE '%$motsclef1[i]%')"; // On increment la variable $i $i++; } // On execute la requete $result = mysql_query($sql); // On recupère les données trouvés while ($data = mysql_fetch_array($result)) { // On affiche les resultats echo "Description : ".$data[description]." <br/>"; echo "Intervenants : ".$data[intervenants]." <br/>"; echo "Public : ".$data[public]." <br/>"; } ?>, mai sj'ia bien deux mots clefs (echo $motsclef; donne "2")
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM aide_ac WHERE (specifique LIKE '%ollivet%' OR description LIKE '%ollivet%' OR adresse LIKE '%ollivet%' OR tarifs LIKE '%ollivet%' OR intervenants LIKE '%ollivet%') AND (specifique LIKE '%%' OR description LIKE '%%' OR adresse LIKE '%%' OR tarifs LIKE '%%' OR intervenants LIKE '%%')
si besoin, le code de la page du formulaire
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 <form method="POST" action="test1.php"> <!-- Le champs à remplir par le visiteur --> <tr><td><input type="text" name="motsclef"> <!-- Ici le visiteur choisit la methode --> <select name="methode"> <option value="AND">Tous les mots</option> <option value="OR">Au moins un mot</option> </select> </td></tr> <!-- Le bouton de validation --> <tr><td><input type="submit" value="Rechercher"></td></tr> <!-- On referme le formulaire --> </form>








Répondre avec citation
Partager