Bonjour,
J'ai mon moteur de recherche que je traîne de site en site... et qui fonctionne très bien. Sauf qu'il ne permet la recherche que d'un seul mot (ex: carte) ou d'un groupe de mot se suivant exactement (ex: carte postale).
Voici le formulaire de recherche :
et voici la page de résultat (dans cette version, j'utilise une jointure) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <div id="moteurderecherche"> <form action="moteurderechercheresult.php" method="post"> <p> <input type="search" name="requete" id="requete" size="30" placeholder="Recherche" maxlength="25" accesskey="4" /> <input class="bouton2" type="submit" name="submit" id="submit" value="Ok" /> </p> </form> </div>
Je souhaite augmenter ce code de façon à pouvoir effectuer une recherche avec au moins deux mots distincts (ex : carte Strasbourg).
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 <?php if(isset($_POST['requete']) AND $_POST['requete'] != NULL) { $requete = htmlentities($_POST['requete'], ENT_QUOTES); include('connexion_sql.php'); $query=$bdd->query("SELECT * FROM premiere_table AS aa RIGHT JOIN seconde_table AS ar ON aa.titre = ar.titre WHERE aa.article OR ar.article LIKE '%" .$requete. "%' OR aa.signature OR ar.signature LIKE '%" .$requete. "%' ") or die(print_r($bdd->errorInfo())); $nb_resultats = $query->rowCount(); if($nb_resultats > 0) { echo 'Nous avons ' .$nb_resultats; if($nb_resultats > 1) { echo ' résultats'; } else { echo ' résultat'; } echo ' pour votre requête : <strong>' .$requete. '</strong><br/><br />'; while($donnees = $query->fetch()) { echo '<a href="http://www.lesite.fr/' .stripslashes($donnees['titre']). '">' .stripslashes($donnees['titre']). '</a><br />'; } } else if($nb_resultats == 0) { echo 'Nous n\'avons trouvé aucun résultat pour votre requête : <span class="gras">' .$requete. '</span>'; } $query->closeCursor(); } ?>
Veut-on bien me guider siouplè ?
Merci
Partager