IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Moteur de recherche par mot clés


Sujet :

Langage PHP

  1. #1
    Nee
    Nee est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 50
    Points : 56
    Points
    56
    Par défaut [Tableaux] Moteur de recherche par mot clés
    Bonjour

    J'ai recherché un peu partout mais sans succes. Mes essais vont dans le mur.

    J'ai un tout petit CMS "maison" qui gère des documents.
    J'ai une table "doc" avec les colones classiques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    table "doc"
    docId | docTitre | docUrl
     
    exemple :
    1 | document 1 | doc1.htm
    2 | document 2 | doc2.htm
    ...
    Pour les mots clés, je suis parti sur une table "docmot" de cette structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    table "docmot"
    docmotId | docId | motId
     
    exemple :
    1 | 1 | WEB
    2 | 1 | PHP
    3 | 2 | WEB
    ...
    Une table "mot" contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    table "mot"
    idmot | titreMot
     
    exemple :
    PHP | Langage PHP
    WEB | Internet
    ...
    Je n'arrive pas a construire la requete mySQL pour rechercher un document qui a plusieurs mot (AND).
    En fait, je ne sais pas comment recuperer la liste des "mot" quand je fais un Select sur "doc".
    Il y a certainement une solution avec des jointures...

    Je me demande si je ne vais pas partir avec les mots clés séparés par de virgules dans la table "doc"...
    Mais je trouve ca moins propre, et ca limite sur d'autres possibilités : compte des occurences de mots, etc.

    Merci de m'eclairer si vous le pouvez.
    Bonne année :p
    we are the knights who said nee !

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Je suis sur que du coté du forum MySql tu trouveras une réponse

  3. #3
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    tu n'as pas d'autre choix que d'utiliser les jointures.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT mot.titreMot FROM mot, doc, docmot WHERE mot.idMot=docmot.motId AND docmot.docId=doc.docId AND doc.docTitre="le nom de ton document"
    ça devrait fonctionner je pense.

  4. #4
    Nee
    Nee est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 50
    Points : 56
    Points
    56
    Par défaut
    dj-julio, ok pour sortir les mot clé d'un doc selon son ID, mais si je veux lister tous les doc qui ont 2 mots précis par ex ?
    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT doc.docTitre FROM doc, mot WHERE mot.docId = doc.docId AND mot.motId = "WEB" AND mot.motId = "PHP"
    Je n'arrive a récuperer qu'un seul mot a chaque fois.

    je vais voir du coté du forum mysql.

    merci
    we are the knights who said nee !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    salut

    y a pas si longtemps on ma conseiller de faire une requete avec Match ..Angainst avec des champsen full text voici
    un url http://dev.mysql.com/doc/refman/4.1/...t-boolean.html

Discussions similaires

  1. [MySQL] Créer un moteur de recherche par mots clés rapide PHP
    Par MaitreTsiang dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 30/11/2009, 09h28
  2. Recherche par mot clés - Php -Mysql
    Par pod1978 dans le forum Requêtes
    Réponses: 8
    Dernier message: 22/09/2006, 13h01
  3. recherche par mots-clés dans base access
    Par syber72 dans le forum Access
    Réponses: 2
    Dernier message: 07/03/2006, 13h53
  4. [MySQL] recherche par mots clés
    Par spartan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/02/2006, 16h11
  5. Recherche par mots clés
    Par legillou dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/06/2005, 10h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo