Aller au contenu

Probleme dans un moteur de recherche


elomaster

Sujets conseillés

Bonjour a tous

Les articles de mon site son stocké dans une table mysql. Jai créer un champ mot clé dans lequel pour chaque article le redacteur entre les mot clé correspondant a son article. Je voudrais réaliser un moteur de recherche a partir de ce champ. mon principale problème est la recherche dans la

table mysql. Jai deja fait des essai du genre :

$query= "select * from article where mot-clé= "mot_clé_entrer_par_le_visiteur" "

Le probléme est que dans le champ mot clé il y plusieurs mot clé et que du coup la demande naboutit jamais.

Pouvez vous maider

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

WHERE mot-clé LIKE '%mot_clé_entrer_par_le_visiteur%'

je pense que ce sera deja mieux, ensuite, il te faut également exploser les mots? et tester pour chacun des mots entrés dans le formulaire :)

Modifié par hcplayer
Lien vers le commentaire
Partager sur d’autres sites

Voila le code que j'ai fait pour le moment mais les boucles for me semble mauvaise et il doit exister un meilleur moyen mais je vois pas lequel.

if(isset($_GET['q']))
{
$qs=explode(" ",$_GET['q']);
$nbq=count($qs);
echo $nbq;

for($i=0;$i<$nbq;$i++)
{
$query[$i]='select * from article where motcle like "%'.$qs[$i].'%"';
echo $query[$i];
mysql_connect("localhost","login","mot de passe")
$retour[$i]=mysql_query($query[$i]);
mysql_error();
mysql_close();
$nb[$i]=mysql_num_rows($retour[$i]);
while($row=mysql_fetch_array($retour[$i]))
{
$id[][$i]=$row["id"];
$auteur[]=$row["auteur"];
$lien[]=$row["lien"];
$jour[]=$row["jour"];
$mois[]=$row["mois"];
$heure[]=$row["heure"];
$annee[]=$row["annee"];
$description[]=$row["description"];
$vues[]=$row["vues"];
}

for($t=0;$t<$nb[$i];$t++)
{

echo '<p><a class="haut" href="lire.php?id='.$id[$i].'">'.$lien[$i].'</a><br>';
echo ''.$description[$i].'...<br>';
echo '<b>'.$auteur[$i].'</b> le : ';
echo''.$jour[$i].'/'.$mois[$t].'/'.$annee[$i].' à '.$heure[$i].'<br>article vus : '.$vues[$i].' fois</p>';
}
}
}

else
{
echo '<form action="search.php" method="get"><input type="text" name="q"><input type="submit"></form>';
}

ps:le code fonctionne mais pour de mots clés different mais correspondant aux même article il affiche 2 fois la reponse, n'y a t'il pas un moyen de l'éviter

Modifié par elomaster
Lien vers le commentaire
Partager sur d’autres sites

L'autre fonction qu'évoque black_shade est l'utilisation de la recherche full text avec mysql.

cf. http://doc.domainepublic.net/mysql/doc.mys...ext-search.html

Il existe aussi un certain nombre de tutoriel de moteur de recherche utilisant cette fameuse recherche de tri par pertinence.

Je l'utilise sur quelques sites, mais parfois la pertinence n'est pas complètement au rendez-vous...

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...