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 :

affichage d'un tableau à partir de requetes sql


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut affichage d'un tableau à partir de requetes sql
    je voudrais afficher un tableau de cette forme:

    ------------------------------------------------------------
    Cours : XX
    ------------------------------------------------------------
    Groupe X1 Groupe X2 etc.
    user 1 user 1
    user 2 user 2
    ------------------------------------------------------------


    hors actuellement je n'arrive qu'à afficher cela:


    le membre 127 du groupe 3 est associé au cours 56
    le membre 458 du groupe 3 est associé au cours 56
    le membre 764 du groupe 4 est associé au cours 56
    le membre 321 du groupe 4 est associé au cours 56

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Quelle est ta question ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut question
    ma question est qu'a partir d'une base de donnée sql,
    j'arrive à dupliquer avec auto incrémentation dans cette base
    une donnée sélectionnée à partir d'une page formulaire html
    qu'en suite une page php contenant la requête fait le este du travail
    et modifie enfin mysql, et m'affiche dans une page php le résultat

    hors je souhaite que ce résultat s'affiche sous forme d'un tableau
    avec une entête de la sélection principale
    et en dessous les sous champs avec leur contenu au dessous

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Ok si j'ai bien compris, il s'agit d'afficher des données normalement disposées "en lignes" sous forme d'un affichage "en colonne".

    Pour faire ça, tu dois garder à l'esprit qu'un tableau HTML se construit toujours ligne par ligne donc tu va devoir réorganiser les données avant de les mettre en forme pour l'affichage.

    D'après les éléments fournis, ta requête SQL te renvoie, pour chaque ligne de résultat, un numéro de membre, un numéro de groupe et un numéro de cours.

    Il faut donc que tu arrives à regrouper ces informations sous forme d'arbre:
    Cours > Groupe > Membre.

    Pour construire cet arbre, tu vas devoir itérer sur l'intégralité du jeu de résultat, un peu de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $tree = array();
    while ($row = mysql_fetch_assoc($results)) {
      if (!isset($tree[$row['id_class']])
        $tree[$row['id_class']] = array();
     
      if (!isset($tree[$row['id_class']][$row['id_group']]))
        $tree[$row['id_class']][$row['id_group']] = array();
     
      $tree[$row['id_class']][$row['id_group']][] = $row['id_member'];
    }
    var_dump($tree);
    Pour l'affichage, tu t'en sortira mieux avec une double boucle et des listes qu'avec des tableaux à mon avis. Ce qui pourrait ressembler à:
    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
    <div class="classes">
      <?php foreach ($tree as $id_class => $groups): ?>
      <h2>Classe <?=$id_class?></h2>
      <?php foreach ($groups as $id_group => $members): ?>
      <div class="group">
         <h3>Groupe <?=$id_group?></h3>
         <ul class="members">
            <?php foreach ($members as $id_member): ?>
            <li>Membre <?=$id_member?></li>
            <?php endforeach ?>
         </ul>
      </div>
      <?php endforeach ?>
      <?php endforeach ?>
    </div>
    ensuite tu peux jouer sur les CSS pour afficher les groupes en colonne plutôt qu'en ligne. Sinon tu peux construire un tableau avec des cases vides éventuellement. Mais les tableaux sont peu propices à accueillir des arbes d'informations, on travaille avec du HTML et pas avec Excel

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    ok; je viens de lire ta réponse merci.

    voici le code actuel que j'ai et qui fonctionne certes, mais dont oui comme tu l'a bien compris l'affichage que je veux doit se faire sous forme de colonne (et ce à partir de 2 tables sql):

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
     
    //connection au serveur
    $connect = mysql_connect("localhost","root","");
     
    //sélection de la base de donnée
    mysql_select_db("duplicator", $connect) or die ('ARGH!');
     
    // Sélectionner les groupes du Cours A (dans mdl_groups)
    $req_build1 = "SELECT * FROM mdl_groups WHERE courseid = ".$_POST['course_A'];
    $req1 = mysql_query($req_build1) or die ('query1');
     
     
    while($resultat1 = mysql_fetch_array($req1)){ // BOUCLE des GROUPES
     
    // Sélectionner les membres des groupes du Cours A (dans mdl_groups_members)
    	$req_build2 = "SELECT * FROM mdl_groups_members WHERE groupid = ".$resultat1['id'];
    	$req2 = mysql_query($req_build2) or die ('query2');
     
    	while($resultat2 = mysql_fetch_array($req2)){ // BOUCLE des MEMBERS
     
    		echo "le membre ".$resultat2['userid']." du groupe ".$resultat1['id']." est associé au cours ".$_POST['course_A']."<br>";
     
    	}
    }
     
     
    mysql_close();
    ?>

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Y a t'il quelque chose que tu ne comprends pas dans l'exemple que j'ai posté plus haut ?

    Très drôle

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Points : 2
    Points
    2
    Par défaut suite
    si je comprends plus ou moins ton code; je suis parti sur quelque chose qui me parait plus simple, en tableau html:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    //connection au serveur
    $connect = mysql_connect("localhost","root","");
     
    //sélection de la base de donnée
    mysql_select_db("duplicator", $connect) or die ('ARGH!');
     
    //=======================================================================================
    // Sélectionner les groupes du Cours A (dans mdl_groups)
    $req_build1 = "SELECT * FROM mdl_groups WHERE courseid = ".$_POST['course_A'];
    $req1 = mysql_query($req_build1) or die ('query1');
    $req1b = mysql_query($req_build1) or die ('query1b');
     
    $resultat1b = mysql_fetch_array($req1b);
    echo 'Groupes du cours '.$resultat1b['courseid'];
     
    while($resultat1 = mysql_fetch_array($req1)){ // BOUCLE des GROUPES
     
    // Sélectionner les membres des groupes du Cours A (dans mdl_groups_members)
    	$req_build2 = "SELECT * FROM mdl_groups_members WHERE groupid = ".$resultat1['id'];
    	$req2 = mysql_query($req_build2) or die ('query2');
     
    	echo '<table border=1><caption>Groupe '.$resultat1['id'].'</caption>';
    	echo '<tr><td>&nbsp;</td><td>Membres</td></tr>';
    	$compteur = 1;
    	while($resultat2 = mysql_fetch_array($req2)){ // BOUCLE des MEMBERS
     
    		echo '<tr><td>'.$compteur.'</td><td>'.$resultat2['userid'].'</td></tr>';
    		$compteur ++;
    	}
     
    	echo '</table>';
     
    }
     
     
    mysql_close();
    ?>
    dont le résultat est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Groupes du cours 55
    Groupe 1 
          Membres
    1	127
    2	458
    Groupe 2
          Membres
    1	764
    2	321

    mais je voudrai quelque chose de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Groupe 1               Groupe 2
          Membres             Membres
    1	127            1      764
    2	458            2      321
    si tu sais comment modifier le dernier code que j'ai envoyé pour avoir cela juste au dessus?

Discussions similaires

  1. [MySQL] probleme affichage dans un tableau avec double requetes
    Par roy-mustang dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/05/2009, 09h25
  2. [PHP 5.0] Tri/Affichage d'un tableau à partir d'une de ses valeurs
    Par Wearmoi dans le forum Langage
    Réponses: 1
    Dernier message: 31/03/2009, 16h34
  3. [Tableaux] affichage tableau php apres requete sql count
    Par heteroclite dans le forum Langage
    Réponses: 1
    Dernier message: 13/09/2006, 20h53
  4. Réponses: 1
    Dernier message: 25/10/2005, 12h18
  5. [Requête]Affichage d'un tableau à partir de 2 tables SQL
    Par sp4ever dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/10/2005, 11h32

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