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 :

Recherche multicritères [Fait]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 208
    Par défaut Recherche multicritères
    Bonjour,
    Je pensais trouver sur Google, mais rien à cette heure ci.
    Je veux inclure plusieurs critères dans la barre de recherche unique et afficher le résultat trouvé.
    Ex:plage cannes Résultat:doit afficher les résultats des champs contenant "plage" et "cannes" de la meme table.
    Je pensais utiliser "simplement" AND ou OR mais ça n'a pas l'air d'être la bonne formule...
    Si quelqu'un peut me guider...
    Je suis sur WAMP
    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $table = "resto"; // Table à sélectionner dans la base
    $champ = "city"; // Champ de la table à afficher pour tester ce script
    $champ2 = "title";
    $champ3 = "id";
    $sql = "SELECT city, title,id FROM $table WHERE $champ,$champ2  LIKE '%".addslashes($recherche)."%' OR $champ2 LIKE '%".addslashes($recherche)."%' ORDER BY title";
    ...en esperant que ce bout de code soit suffisant

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour,

    pour ce type de recherche, peut-être devrais tu utiliser FULLTEXT :
    http://dev.mysql.com/doc/refman/5.0/...xt-search.html

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 208
    Par défaut
    Merci N1bus,mais ça ne répond pas au besoin...
    Ma requete dans la barre de recherche n'accepte qu'un mot..comment y mettre deux mots ou trois et avoir le resultats correspondant,comme dans la recherche de ce site ou Google?

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    En récupérant le contenu de la variable -> en faire un tableau avec explode() avec l'espace comme séparateur et faire plusieurs requêtes en fonction du nombre de mots ?

    Je ne sais pas si il y a plus facile, mais c'est peut être une solution...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 208
    Par défaut
    Je dois mal l'utiliser....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $table = "resto"; // Table à sélectionner dans la base
    $champ = "city"; // Champ de la table à afficher pour tester ce script
    $champ2 = "title";
    $champ3 = "id";
    $sql = "SELECT city, title,id FROM $table WHERE $champ LIKE '%".addslashes($recherche)."%' OR $champ2 LIKE '%".addslashes($recherche)."%' ORDER BY title";
     
    (.....................)
     
    // On affiche le résultat de la requête
    // On crée donc ici son propre tableau pour lequel on souhaite une pagination
    while ($ligne = mysql_fetch_array($result)) {
    echo (explode('|',"<a href=\"affichage.php?id=".$ligne[$champ3]."\">".$ligne[$champ]."\n\n".$ligne[$champ2]."</a><br />\n"));
    }

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 235
    Par défaut
    Le but de explode c'est de pouvoir récupéré tes 2 mots (voir plus) de ton champs recherche dans 2 variable distincte contenu dans un tableau.

    Si ton champ recherche s'appelle $recherche et qu'il contient "plage cannes"

    un explode(" ",$recherche) va te renvoyer un tableau avec un mot par ligne du tableau

    Donc $array = explode(" ",$recherche) va permettre d'avoir $array[0] = plage et $array[1] = cannes

    Ensuite tu crées tes requettes avec ca...

Discussions similaires

  1. faire un état d'après recherche multicritère
    Par bilouk dans le forum Access
    Réponses: 4
    Dernier message: 12/01/2006, 18h30
  2. Formulaire Recherche MultiCritère et RunTime
    Par fbu78 dans le forum Runtime
    Réponses: 9
    Dernier message: 06/01/2006, 17h52
  3. Recherche multicritère
    Par Darlay Jean_Louis dans le forum Access
    Réponses: 2
    Dernier message: 26/10/2005, 09h54
  4. Réponses: 2
    Dernier message: 01/10/2005, 18h42
  5. recherche multicritères
    Par onlineduel dans le forum Débuter
    Réponses: 3
    Dernier message: 30/03/2004, 16h15

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