Bonjour,
Je me suis servi d'un tutorial pour essayer de crér un moteur de recherche pour mon site. Cependant, j'ai un petit probleme c'est que les resultats ont parfois aucun rapport avec la requete. Je n'ai que pour 4 entrées pour l'instant dans la table dont je me sers pour la recherhe afin de faire des tests, et par exemple quand justement je tape test dans le champs de recherche j'ai ceci qui apparait : Test2 (la c'est ok) mais aussi ceci : Moteur de recherche (pas ok) . Il n'y a pas trop de rapport entre le mot test et les mots moteur de recherche. Pourriez vous m'aider à résoudre ce probleme ?
Voici mon code :
<divid="banniere">
<tableborder="0"id="search"><tr><td><imgid="imgban"src="images/alliancelogotexte.gif"alt="alliance international"/></td><tdid="imagehaut"><imgsrc="images/home4.jpg"alt=""/></td>
<tdid="recherchespace"></td>
<tdclass="recherche"><imgsrc="images/rechercher.gif"alt=""/></td><td><formmethod="post"action="search.php"><inputtype="text"size="10"value=""name="keyword"/></td><td><selectname="family"><optionvalue="cata">Dans le catalogue</option><optionvalue="actu">Dans les actualités</option></select></td><td><inputtype="submit"value="Go"/></form></td></tr>
</table>
</div>
<divid="menuhaut">
<ul>
<li><ahref="index.html">Accueil</a></li>
<li><imgsrc="images/menu_separation.gif"alt=""/></li>
<li><ahref="presentation.html">Présentation</a></li>
<li><imgsrc="images/menu_separation.gif"alt=""/></li>
<li><ahref="catal.php">Catalogue</a></li>
<li><imgsrc="images/menu_separation.gif"alt=""/></li>
<li><ahref="actu.php">Actualité</a></li>
<li><imgsrc="images/menu_separation.gif"alt=""/></li>
<li><ahref="contact.html">Contact</a></li>
</ul>
</div>
<divid="hautmenu">
<center><pclass="titremenu">Titre groupe</p></center>
</div>
<divid="menunav">
<spanclass="tlien"><imgsrc="images/picto-fleche2.gif"alt=""/><ahref="#">Titre du groupe de lien</a></span>
<ulclass="lien">
<li><ahref="#">Souslien1</a></li>
<li><ahref="#">Souslien2</a></li>
<li><ahref="#">Souslien3</a></li>
<li><ahref="#">Souslien4</a></li>
<li><ahref="#">Souslien5</a></li>
<li><ahref="#">Souslien6</a></li>
</ul>
<br/><br/>
<spanclass="tlien"><imgsrc="images/picto-fleche2.gif"alt=""/><ahref="#">Titre du groupe de lien</a></span>
<ulclass="lien">
<li><ahref="#">Souslien1</a></li>
<li><ahref="#">Souslien2</a></li>
<li><ahref="#">Souslien3</a></li>
<li><ahref="#">Souslien4</a></li>
<li><ahref="#">Souslien5</a></li>
<li><ahref="#">Souslien6</a></li>
</ul>
<br/><br/>
<spanclass="tlien"><imgsrc="images/picto-fleche2.gif"alt=""/><ahref="#">Titre du groupe de lien</a></span>
<ulclass="lien">
<li><ahref="#">Souslien1</a></li>
<li><ahref="#">Souslien2</a></li>
<li><ahref="#">Souslien3</a></li>
<li><ahref="#">Souslien4</a></li>
<li><ahref="#">Souslien5</a></li>
<li><ahref="#">Souslien6</a></li>
</ul>
<br/>
</div>
<?php
include('config.php');
if(isset($_POST['keyword']))$keyword=stripslashes($_POST['keyword']);
if(isset($_POST['family']))$family=stripslashes($_POST['family']);
$keyword=strtolower($keyword);// on passe les mots recherchés en minuscules
$mots=str_replace("+"," ",trim($keyword));// on remplace les + par des espaces
$mots=str_replace("\""," ",$mots);// on remplace les " par des espaces
$mots=str_replace(","," ",$mots);// on remplace les , par des espaces
$mots=str_replace(":"," ",$mots);// on remplace les : par des espaces
$tab=explode(" ",$mots);// on place les differents mots dans un tableau
$nombre_mots=count($mots);
if($family=='actu')
{
$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 la variable $nombre_mots_boucle de 1 à chaque fois
{
$valeur_requete.='AND titre LIKE \'%'.$mots[$nombre_mots_boucle].'%\'';//modification de la variable $valeur_requete
}
$valeur_requete=ltrim($valeur_requete,'AND');//suppression de AND au début de la boucle
$selection_recherche=mysql_query("SELECT * FROM actu WHERE $valeur_requete ORDER BY date DESC");// on execute la requête SQL.
$nombre_resultats=mysql_num_rows($selection_recherche);
if($nombre_resultats==0)
{
?>
<divid="contenu">
<formmethd="post"action="search.php"><tableborder="0"id="menusearch"><tr><td><imgsrc="images/rechercher.gif"alt=""/></td><td><inputtype="text"size="10"value=""name="keyword"/></td><td><selectname="family"><optionvalue="cata">Dans le catalogue</option><optionvalue="actu">Dans les actualités</option></select></td><td><inputtype="submit"value="Go"/></td></tr></table></form>
<tableborder="0">
<tr>
<tdid="gauche">
</td>
<tdid="centre">
Il n'y a aucune actualité correspondant à vos mots clés.
<tdclass="droite"><imgclass="block"src="images/Med_International_08.gif"width="361"height="657"alt=""/></td>
</tr>
</table>
</div>
<?
}
else
{
?>
<divid="contenu">
<formmethd="post"action="search.php"><tableborder="0"id="menusearch"><tr><td><imgsrc="images/rechercher.gif"alt=""/></td><td><inputtype="text"size="10"value=""name="keyword"/></td><td><selectname="family"><optionvalue="cata">Dans le catalogue</option><optionvalue="actu">Dans les actualités</option></select></td><td><inputtype="submit"value="Go"/></td></tr><tr><td>Il y'a <?phpecho$nombre_resultats?> résultats correspondant à votre recherche</td></tr></table></form>
<tableborder="0">
<tr>
<tdid="gauche">
</td>
<tdid="centre">
<?phpwhile($resultats=mysql_fetch_array($selection_recherche))
{?>
<tableborder="0"id="actuarray">
<tr><tdid="titreactu"><imgsrc="images/arrow.gif"alt=""/><?phpecho$resultats['titre'];?></td></tr>
<tr><tdid="date"><?phpecho$resultats['date'];?></td></tr>
<tr><tdid="contenuactu"><?phpecho$resultats['content'];?></td></tr>
</table>
<?php
}
Merci d'avance pour votre aide !
}
}
?>
<tdclass="droite"><imgclass="block"src="images/Med_International_08.gif"width="361"height="657"alt=""/></td>
</tr>
</table>
</div>