Aller au contenu

Mini moteur de recherche


sparh

Sujets conseillés

Bonsoir,

voilà, je tente d'installer un mini moteur de recherche sur mon site.

Pour chaque article, j'ajoute une liste de mot clefs séparés par une virgule.

Donc dans ma table contenu j'ai une colonne keywords qui contient les mots clefs (du type: keyword1,keyword2,keyword3).

Ce que je cherche, c'est faire une recherche dans cette colonne et sortir tout les résultats qui on le mot clef, ou une partie du mot clef.

Bref comme un moteur de recherche.

Je cherche sur gg mais peut être que je gagnerai du temps ici ;)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

tu devrais te renseigner sur la recherche fulltext intégré à mysql : http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html

HS : attention à ta méthode... Si tu fixe des mots clés toi même, rien ne dit que ce seront les mots clés tapés par tes visiteurs. Bref, cette méthode n'est pas très pertinente et ne répondra pas aux attentes de tes visiteurs. Mais, tu me dira, je ne connais pas ton projet ;)

Lien vers le commentaire
Partager sur d’autres sites

Salut,

merci pour le lien ;)

Alors, voilà ou j'en suis:

<form method="post" action="test.php">

Entrez un mot clé:<br>

<input type="text" name="Mot" size="15">

<input type="submit" value="Rechercher" name="go" alt="Lancer la recherche!">

(</form>
<?php
if (isset ($_POST['go']) && $_POST['go']=='Rechercher')
{
$mots = $_POST['Mot'];

$query = "SELECT * FROM article WHERE MATCH (keywords) AGAINST ('$mots')";
echo $query;
$result = mysql_query($query)or die('Erreur SQL !'.$query.'<br />'.mysql_error());

while($row = mysql_fetch_array($result))
{

echo $row['titre'].'<br />';

}
}
?>

(J'ai bien mis la colonne keywords (de la table artcicle) en FULLTEXT)

La requête passe mais impossible d'avoir un résultat!!

PS: j'éssai en fait de faire une sorte de tag cloud, je sais récupérer les mots cles référents mais je ne trouve pas comment mettre place un système qui comprendrai mes mots clefs et les référents?!?

Si je suis partis sur une mauvaise idée, n'hésitez pas à me rediriger ;)

Lien vers le commentaire
Partager sur d’autres sites

1/ Es tu sûr d'avoir un champ 'titre' dans la table 'article' ?

2/ Modifies la requète : $query = "SELECT * FROM article WHERE MATCH (keywords) AGAINST ('$mots')";

comme ceci : $query = "SELECT * FROM article WHERE keywords LIKE '".$mots."' ";

Lien vers le commentaire
Partager sur d’autres sites

Merci c'est déjà pas mal.

Mais j'aimerai bien comprendre la notion de FILLTEXT (et à faire marcher ma requête).

Si vous aviez des précisions ou de bon lien ce serai sympa ;)

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...