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) :
Je souhaite augmenter ce code de façon à pouvoir effectuer une recherche avec au moins deux mots distincts (ex : carte Strasbourg).
Veut-on bien me guider siouplè ?
Merci
Modifié par Marie08 (19 Jun 2015 - 13:21)
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 :
<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>
et voici la page de résultat (dans cette version, j'utilise une jointure) :
<?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();
}
?>
Je souhaite augmenter ce code de façon à pouvoir effectuer une recherche avec au moins deux mots distincts (ex : carte Strasbourg).
Veut-on bien me guider siouplè ?
Merci
Modifié par Marie08 (19 Jun 2015 - 13:21)