Aller au contenu

Mini moteur de recherche


Sujets conseillés

Posté

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 ;)

Posté

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 ;)

Posté

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 ;)

Posté

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."' ";

Posté

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 ;)

Veuillez vous connecter pour commenter

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



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