sparh Posté 25 Novembre 2007 Posté 25 Novembre 2007 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
blman Posté 25 Novembre 2007 Posté 25 Novembre 2007 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
sparh Posté 25 Novembre 2007 Auteur Posté 25 Novembre 2007 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> <?phpif (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
Anonymus Posté 25 Novembre 2007 Posté 25 Novembre 2007 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 Posté 26 Novembre 2007 Posté 26 Novembre 2007 Pour un système de tag, peut-être qu'une requête toute simple LIKE '%letag%' suffirais amplement alors...
sparh Posté 27 Novembre 2007 Auteur Posté 27 Novembre 2007 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
Anonymus Posté 1 Décembre 2007 Posté 1 Décembre 2007 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant