Aller au contenu

Probleme dans un moteur de recherche


Sujets conseillés

Posté

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

Posté (modifié)

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
Posté

Bonjour,

Tu peux faire

SELECT * FROM `article` WHERE `mot-cle` LIKE '%$word%'

Par exemple, ou il y a une autre fonction que "LIKE" mais je ne sais pas te dire laquelle (elle "triait" par pertinence)

Posté

Ok je vais essayer

Mon autre probleme

est que je voudrais que le visteur puisse entrer plusieurs mot clé qui seront verifier chacun à leur tour

Posté (modifié)

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

Veuillez vous connecter pour commenter

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



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