Version complète: sur le forum Webmaster Hub : Mini moteur de recherche
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
sparh
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 wink.gif
blman
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 wink.gif
sparh
Salut,
merci pour le lien wink.gif

Alors, voilà ou j'en suis:
CODE
<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 wink.gif
Anonymus
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."' ";
blman
Pour un système de tag, peut-être qu'une requête toute simple LIKE '%letag%' suffirais amplement alors...
sparh
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 wink.gif
Anonymus
CITATION(blman @ dimanche 25 novembre 2007 à 21:19) *
Bonjour,

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

Oui, voilà un bon lien smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.