Index du Forum » » Le coin des codeurs

Auteur

Moteur de recherche
camy
40    

  Posté : 28-07-2003 09:16

J'ai créé un moteur de recherche sur ma base de données.
Le problème arrive qd on rentre plusieurs mots clefs au lieu d'un seul.
Rien ne s'affiche.
Le ou les mots entrés par l'utisateur sont récupérés dans la variable $recherche.
Ensuite voici mon code :
<?php
if ($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.
$sql = "select * from coordonnées where mots_clefs like '%$tab[0]%'
order by nom_assos";
// on boucle pour integrer tous les mots dans la requête
for($i = 1; $i < $nb; $i++) {
$sql .= "".$operateur." mot_cles like \'%$tab[$i]%\' ";
}
//on se connecte au serveur
$db=mysql_connect("localhost", "root", "");
//selection de la base assos1
mysql_select_db('associations',$db) ;
// on execute la requête SQL.
$result = mysql_db_query('associations',$sql);
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>&quo t;;
while($row = mysql_fetch_array($result)) {
echo $row['nom_assos'];
echo"<BR>" ;
}
mysql_free_result($result);
}
}
}
?>



Cet article provient de NPDS

http://www.npds.org/viewtopic.php?topic=6879&forum=5