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 :

Afficher résultat de requête en liste ul li [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de php_de_travers
    Inscrit en
    Juin 2004
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 460
    Par défaut Afficher résultat de requête en liste ul li
    Bonjour,

    j'ai des enregistrements qui contiennent 3 niveaux d'information dans 2 champs différents :

    sport - equipe - nom
    ex :
    1 - basket - benjamin - kevin
    2 - basket - benjamin - paul
    3 - basket - minime - louis
    4 - basket - cadet - sylvain
    5 - rugby - minime - robert
    6 - rugby - minime - mathieu

    Je souhaiterais les exploiter grâce à des listes (ul li ...) et afficher :

    - basket
    -- benjamin
    --- kevin
    --- paul
    -- minime
    --- louis
    -- cadet
    --- sylvain

    - rugby
    -- minime
    --- robert
    --- mathieu

    Est-ce possible ? Si oui comment ?

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    tu peux stocker ça dans un tableau multi-dimensionnel comme ça par exemple :
    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
    16
    17
    $tab = array();
     
    while ($ligne = mysql_fetch_assoc($resultat)) {
        if (!isset($tab[$ligne['sport']])) {
            $tab[$ligne['sport']] = array();
        }
     
        if (!isset($tab[$ligne['sport']][$ligne['equipe']])) {
            $tab[$ligne['sport']][$ligne['equipe']] = array();
        }    
     
        $tab[$ligne['sport']][$ligne['equipe']][] = $ligne['nom'];
    }
     
    echo '<pre>';
    print_r($tab);
    echo '</pre>';

  3. #3
    Membre éclairé Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Par défaut
    Bien sûr que c'est possible ! Tout est possible (enfin je crois... cette information reste à vérifier ) !

    Donc... il te suffit de faire un SELECT sur ta table puis, lorsque tu boucles pour lire ton dataset, si le sport suivant est différent de celui que tu viens d'écrire, alors tu rajoutes un <ul>... et pareil pour les équipes !

    Je m'explique par le code :
    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
    16
    17
    18
    19
    for($i=0; $ligne = mysql_fetch_assoc[$resultat]; $i++)
    {
          if($sportCourant <> $ligne['sport'])
          {
               if($i <> 0) { echo '</ul>'; }
               $sportCourant = $ligne['sport'];
               echo '<ul>';
               echo '<li>'.$ligne['sport'].'</li>';
          }
     
          if(($equipeCourante != $ligne['equipe'] && $sportCourant == $ligne['sport']) || ($equipeCourante == $ligne['equipe'] && $sportCourant != $ligne['sport']))
          {
               if($i <> 0) { echo '</ul>'; }
               $equipeCourante = $ligne['equipe'];
               echo '<ul><li>'.$ligne['equipe'].'<li>';
          }
     
          echo '<li>'.$ligne['nom'].'</li>';
    }
    Voila, je n'ai pas pu tester mais je l'ai fait un tourner sur papier ça semble correct... Si ça ne marche pas, tu peux éventuellement penser à faire deux requêtes : un pour récupérer uniquement les sports et une autre, dans ta boucle, pour les équipes avec leurs joueurs respectif au sein de ce sport.
    Ce sera un peu plus lourd pour la base mais plus simple à mettre en œuvre...

    Voila, en espérant t'avoir aidé. N'hésite pas à me demander plus d'infos.
    Bonsoir

    Guigouz

  4. #4
    Membre éclairé Avatar de php_de_travers
    Inscrit en
    Juin 2004
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 460
    Par défaut
    Ca marche pas trop mal.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/12/2013, 10h01
  2. Réponses: 1
    Dernier message: 12/12/2011, 10h07
  3. [AC-2002] Afficher résultat de requêtes dans une textBox
    Par 0sef40 dans le forum IHM
    Réponses: 2
    Dernier message: 28/04/2011, 08h07
  4. Résultat d'une requête affichée dans une zone de liste
    Par damsmut dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/05/2008, 16h26
  5. [MySQL] Afficher résultat requete dans une liste en html
    Par maxeur dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 18/02/2008, 09h10

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