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 :

Filtrage des résultats à partir d'une requête


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Par défaut Filtrage des résultats à partir d'une requête
    Bonjour,

    Comment filtrer les resultats d'une recherche, tout en mettant un select sur un element et choisir le mode de filtrage, par exemple, une table avec id et note:

    1, Excellent
    2, Excellent
    3, Bon
    4, Tres Bon
    5, Excellent

    alors sur mon tableau je mets comme titre: note et quand je clique sur le select de note je vois les resultats en mode distinct, ca me donne ca:

    <select>
    <option>Excellent
    <option>Tres Bon
    <option>Bon
    </select>

    et quand je selectionne Excellent, le resultat serait ainsi:

    1, Excellent
    2, Excellent
    5, Excellent

    ca veut dire, il a choisit Excellent seulement, tout en ignorant les autres.

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Ok, mettons que tu aies une table NOTES(id, note, etudiant) ;

    1. Tu affiches une liste des notes possibles dans un <select><option>...
      Tu peux le remplir dynamiquement comme ceci
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
       
      SELECT distinct note
        FROM NOTES
      ce qui donnerait qqch comme
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
       
      <select name="choix_note">
        <option value="Excellent">Excellent</option>
        <option value="Bon">Bon</option>
        <option value="Tres Bon">Tres Bon</option>
      </select>

    1. Dans la page cible de ton formulaire ou tu veux afficher le résultat (la même page si tu veux). Tu dois verifier l'existence de choix_note et recuperer sa valeur (ici en $_GET mais peut-etre $_POST). Ensuite tu recherches
      toutes les notes qui y correspondent (dans le WHERE) :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
       
      if (isset($_GET['choix_note']) && (!empty($_GET['choix_note']))
      {
         $choix_note = $_GET['choix_note'] ; 
         // peut-etre faut-il faire des strip/add slashes etc. a toi de voir.
       
         $sql = " SELECT  id, etudiant, note
                        FROM NOTES
                      WHERE note = '".$choix_note."'
                   ";
       
         // code pour faire la query
         // code pour recuperer le resultat
         // code pour afficher le resultat
      }

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Par défaut
    Citation Envoyé par andr386 Voir le message
    Ok, mettons que tu aies une table NOTES(id, note, etudiant) ;

    1. Tu affiches une liste des notes possibles dans un <select><option>...
      Tu peux le remplir dynamiquement comme ceci
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
       
      SELECT distinct note
        FROM NOTES
      ce qui donnerait qqch comme
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
       
      <select name="choix_note">
        <option value="Excellent">Excellent</option>
        <option value="Bon">Bon</option>
        <option value="Tres Bon">Tres Bon</option>
      </select>

    1. Dans la page cible de ton formulaire ou tu veux afficher le résultat (la même page si tu veux). Tu dois verifier l'existence de choix_note et recuperer sa valeur (ici en $_GET mais peut-etre $_POST). Ensuite tu recherches
      toutes les notes qui y correspondent (dans le WHERE) :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
       
      if (isset($_GET['choix_note']) && (!empty($_GET['choix_note']))
      {
         $choix_note = $_GET['choix_note'] ; 
         // peut-etre faut-il faire des strip/add slashes etc. a toi de voir.
       
         $sql = " SELECT  id, etudiant, note
                        FROM NOTES
                      WHERE note = '".$choix_note."'
                   ";
       
         // code pour faire la query
         // code pour recuperer le resultat
         // code pour afficher le resultat
      }
    Bonjour andr386,

    merci pour la reponse, le probleme c'est dans la 2eme page, la valeur choix_note est Null, meme si j'ai mis la condition.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Citation Envoyé par isitien Voir le message
    Bonjour andr386,

    merci pour la reponse, le probleme c'est dans la 2eme page, la valeur choix_note est Null, meme si j'ai mis la condition.
    La valeur Null ne peut venir que de la BD. De quel condition parles-tu ?
    Dans la 1er page fait un print_r() des resultats retournes par la BD.
    Et dans la deuxieme page fait un print_r() du GET ou POST.

    La premiere chose est de savoir ou se situe le probleme.

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Par défaut
    Citation Envoyé par andr386 Voir le message
    La valeur Null ne peut venir que de la BD. De quel condition parles-tu ?
    Dans la 1er page fait un print_r() des resultats retournes par la BD.
    Et dans la deuxieme page fait un print_r() du GET ou POST.

    La premiere chose est de savoir ou se situe le probleme.
    Le probleme venait du GET, c'est bien resolu.

    Alors si je voudrais faire un multi-filtrage, par exemple, filtrer par notes, et quand j obtien les resultats, je voudrais approfondir le filtrage par ville, y a t il une solution a faire comme ca?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Bien sur que c'est possible.
    Mais je pense que si tu as ete capable d'aller aussi loin, tu es tout a fait
    les capacites techniques pour trouver la solution par toi meme.

    Pose toi les bonnes questions.

    Qu'est-ce qui se passe dans mon scripte et dans quel ordre ?
    (Fais une liste, 1. il se passe ceci, 2 il se passe cela, ....)
    De quels informations ai-je besoins ?
    (Donnees de la base de donnees, etc)
    Quand est-ce que j'en ai besoin ?
    (en rapport avec les actions de ton script)

    C'est important que tu fasse toi-meme ce travaille de reflexion ! C'est le seul moyen de comprendre la logique.

Discussions similaires

  1. [AC-2010] Impossible de remplir des champs à partir d'une requête sélection
    Par xdevel dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 12/10/2014, 15h27
  2. [MySQL] Exclure des résultats lors d'une requête
    Par ConceptInterWEB dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 04/12/2011, 01h39
  3. Réponses: 2
    Dernier message: 22/12/2009, 16h35
  4. Réponses: 5
    Dernier message: 05/11/2009, 12h17
  5. Réponses: 3
    Dernier message: 18/05/2003, 00h16

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