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

PHP & Base de données Discussion :

Moteur de recherche en PHP


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1
    Par défaut Moteur de recherche en PHP
    voila j'ai un problèleme, Ce code me pose vraiment problème !c'est un moteur de recherche !
    Il marche parfaitement mais considère tout les mots comme un seul bloc ! Donc il recherche la phrase parfaite, comment le rendre moins exigeant afin qu'il considère chaque mots séparément lors d'une recherche afin de donner de meilleurs résultat, merci au génie qui me donnera la solution !

    C'est à dire que je veux qu'il recherche chaque mot séparément pour une meilleur indexation des fichiers !
    Vous pouvez me donner le code à ajouter et où l'ajouter ?

    Voici le lien :


    http://www.withpaypal.com/machinb.php

  2. #2
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 9
    Par défaut
    Salut

    Alors, il faut en fait que dans ta page de traitement des informations (la page PHP appelée après la validation de la recherche par l'utilisateur), tu sépares chaque mot saisi. La fonction "explode" de PHP fait ceci très bien.

    Imaginons donc que la variable contenant les mots clé recherchés se nomme $keywords et contienne la chaine "une recherche", cela te donnerait quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $explodedKeywords=explode(" ", $keywords);
    Explode retournant un tableau, ta variable $explodedKeywords sera de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $explodedKeywords[0]="une";
    $explodedKeywords[1]="recherche";
    Une fois cela fait, tu n'as plus qu'à construire ta requête SQL en faisant une boucle sur la longueur de ce tableau, afin de lire chaque élément du tableau.

    Imaginons qu'aujourd'hui tu es une requête de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $querySQL="SELECT champs1 FROM ma_table WHERE monchamps LIKE '%$keywords%'";
    Celle ci deviendrait, après prise en compte du tableau $explodedKeywords :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $querySQL="SELECT champs1 FROM ma_table WHERE monchamps LIKE '%$explodedKeywords[0]%'";
     
    foreach($explodedKeywords as $key=>$value) {
         $querySQL.=" OR monchamps LIKE '%$value%'";
    }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut
    Fais aussi une recherche sur le terme fulltext des BDD mysql pour plus de coherence.

    Et attention a explode si tu veux rendre tes resultat en fonction du maximum de mot ect....

    Va faloir faire des combinaisons.

  4. #4
    Membre averti Avatar de moins52
    Inscrit en
    Août 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 63
    Par défaut
    D'ailleurs est-ce que vous avez des conseils sur les moteurs de recherche Full-Text ?

    Quels sont les meilleurs les plus performants les plus faciles à utiliser ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut
    je dirais celui fournir avec mysql.....
    Pour le Ful-text de mysql il renvoit en général de bon résultat. regarde son fonctionnement sur google.
    Dsl je n'ai pas de lien à proposer.

Discussions similaires

  1. Moteur de recherche et php
    Par Orb Dorb dans le forum Langage
    Réponses: 2
    Dernier message: 25/05/2007, 06h55
  2. [MySQL] Moteur de recherche en php
    Par FerdinandC dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 27/04/2007, 15h16
  3. Réponses: 5
    Dernier message: 10/07/2006, 09h42
  4. [Tableaux] Moteur de recherche en PHP
    Par Msieurduss dans le forum Langage
    Réponses: 3
    Dernier message: 16/06/2006, 14h25
  5. [Tableaux] comment faire un moteur de recherche en php
    Par lindouchine dans le forum Langage
    Réponses: 4
    Dernier message: 23/03/2006, 23h14

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