Script moteur de recherche
Bonjour,
Salut,
J'aimerai adapter a mon site un script de moteur de recherche avec quelque amélioration.
mes amélioration consiste a élevé la sélection
Code:
1 2 3 4
| <select name="mode">
<option value="expression_exacte">Expression exacte</option>
<option value="un_mot">Au moins un mot</option>
</select> |
est garder (au mois un mot) cette option doit resté par default
voila le code
Code:
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 54 55 56 57 58 59 60 61 62
|
<?php
mysql_connect("localhost", "root", ""); //connexion à la bdd
mysql_select_db("testsearch");
if (isset($_POST['rechercher'])) //si on a validé le formulaire
{
$recherche = mysql_real_escape_string(htmlspecialchars($_POST['recherche'])); //sécurisation des variables
$mode = $un_mot
if //si le mode de recherche n'est pas par expression exacte
{
$selection_recherche = mysql_query("SELECT * FROM mpiii WHERE titre LIKE '%$recherche%' ORDER BY id DESC");
$mots = explode(" ", $recherche); //séparation des mots
$nombre_mots = count ($mots); //compte le nombre de mots
$valeur_requete = '';
for($nombre_mots_boucle = 0; $nombre_mots_boucle < $nombre_mots; $nombre_mots_boucle++) //tant que le nombre de mots de la recherche est supérieur à celui de la boucle, on continue en augmentant le nombre de mots de 1 à chaque fois
{
$valeur_requete .= ' titre LIKE \'%' . $mots[$nombre_mots_boucle] . '%\''; //modification de la variable $valeur_requete
}
$valeur_requete = ltrim($valeur_requete); //suppression de AND ou de OR au début de la boucle
$selection_recherche = mysql_query("SELECT *
FROM mpiii
WHERE $valeur_requete ORDER BY id DESC"); //requête avec le résultat de la boucle dedans
}
else
{
echo'test';
}
$nombre_resultats = mysql_num_rows($selection_recherche); //compte le nombre d'entrées sélectionnées par la recherche
if ($nombre_resultats == 0) //s'il n'y a pas de résultat
{
echo 'aucun resultat.<a href="recherche.php">recommencer</a>';
}
else //il y a au moins un résultat
{
echo 'nombre de résultats: ' . $nombre_resultats . ':<br /><br />'; //nombre de résultats
while($resultats = mysql_fetch_array($selection_recherche) ) //boucle affichant les résultats
{
echo '<strong>Titre:</strong> ' . $resultats['titre'] . '<br />
<strong>Date:</strong> ' . $resultats['date'] . '<br /><br />';
}
echo '<a href="recherche.php">recommencer</a>';
}
}
else //si on n'a pas validé le formulaire, on l'affiche
{
?>
<form method="post" action="recherche.php">
Votre recherche :
<input type="text" name="recherche" />
<br />
<input type="submit" value="Rechercher" name="rechercher" />
</form>
<?php
}
mysql_close(); //déconnexion de la bdd
?> |
si quelqu'un peu m'aidez ben qu'il n'hésite pas ^^'
merci d'avance