Afficher les donnes d'une base en 2 tableaux ou plus

madybagayoko1 -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
bonjour, je voudrai affiche les donnes d'une base en 2 tableaux différents avec la boucle while .ou s'il y a d'autre méthode encore plus simple, vraiment je suis bloqué.

c'est dire j'ai 2 bulletins de note enregistre dans ma base de données que je veux les affichés une sur l'autre

9 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Oui, tu peux utiliser une boucle
    while ou for ou foreach ...

    Mais sans voir ton code actuel ni savoir ce que tu as essayé, impossible de t'en dire plus !

    NB: Pour poster ton code, merci de lire et d'appliquer ce qui est indiqué ici : https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

    NB²: Avant de nous poster ton code, commence par le modifier pour prendre en compte les conseils donnés ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

    NB3 : Si ta connexion à ta bdd est faite en PDO, merci d'appliquer également ce qui est marqué là : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

    0
  2. madybagayoko1
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
            <title>Test</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        </head>
        <body>
            <?php //Connection avec la BDD.
            mysql_connect("localhost", "root", "");
            mysql_select_db("vala");
             
            $reponse = mysql_query("SELECT * FROM RANG ORDER BY NOTE DESC");
     
      
            ?>
             
            <table border="3" bordercolor="#87CEFA"  cellspacing="0">
                    <tr>
                        <th>ID</th>
                        <th>MATIERE</th>
                        <th>NOTE CLASSE</th>
                        <th>NOTE COMPO</th>
                    </tr>
                <?php //On affiche les lignes du tableau une à une à l'aide d'une boucle
    
                while($donnees = mysql_fetch_array($reponse))
                {
     
                ?>
                    <tr>
                        
                        <td><?php echo $donnees['ID'];?></td>
                        <td><?php echo $donnees['MATIERE'];?></td>
                        <td><?php echo $donnees['NOTE CLASSE'];?></td>
                        <td><?php echo $donnees['NOTE COMPO'];?></td>
                    </tr>
                <?php
                } //fin de la boucle, le tableau contient toute la BDD
                // mysql_close(); //deconnection de mysql
                ?>
            </table>
      
    
    0
    1. madybagayoko1
       
      0
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Déjà, l'extension mysql_* est obsolete
    tu dois passer à PDO ou mysqli
    https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

    Ensuite, que retourne ta requête ? Quelle est la structure de ta table ? (comment se nomme le champ qui contient le nom de l'eleve ?)

    Sais tu faire des IF/ELSE ?

    SI oui, il te suffit de regarder si le nom de l’élève est le même que le précédent ou non..

    Il ne faut pas non plus trier ta requête sur le champ NOTE.. mais par élève

    0
  4. madybagayoko1
     
    Ok , mais c'est le RANG qui tres important pour moi , c'est pourquoi j'ai trier par NOTE.
    on peut combiner le IF /ELSE avec while.
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Le Rang .. il contient toutes les matières et les élèves ... ou juste la Moyenne par élève ??

      Je suppose que tu as d'autres tables ...

      Il faudrait nous montrer la structure de ta bdd..

      Et oui.. on peut mettre des IF/ELSE dans des WHILE ...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. madybagayoko1
     
    je suis bloque de la restructuration de ma base vue votre explication
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      C'est à dire ?
      Qu'as tu actuellement ?
      A quel niveau bloques tu ?
      0
  7. madybagayoko1
     
    colonne : Matiere Noteclasse NoteCompo NoteCOEF , maintenant le nom des eleves ne peut etre ici sur la meme table a mon avis
    0
  8. madybagayoko1
     
    frachement jai pas d'idée a cree cette table
    0
  9. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Sachant que la structure de ta BDD devrait ressembler à un truc du genre :



    bien entendu, tu peux faire un peu différement.. mais c'est un exemple de découpage assez optimal pour gérer plusieurs classes, matières par année scolaire...
    A toi de l'adapter à tes besoins.
    0
    1. madybagayoko1
       
      comment tout ça sur un tableau à affichage?
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > madybagayoko1
         
        Tu peux faire des phrases complètes ??
        Comment *quoi* ?
        Tout ça ... quoi ?
        0
      2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Si ta question est comment faire les requêtes SQL qui te permettrons d'afficher les données voulues... et bien.. il faut que tu apprennes comment on fait des JOINTURES en SQL.

        Par exemple,
        Récupérer la liste des élèves d'une classe ( de la classe N° 1 pour l'année 2020)
        SELECT *
        FROM eleve_classe EC
        LEFT JOIN eleve E ON E.id = EC.id_eleve
        LEFT JOIn classe C  ON C.id = EC.id_classe
        LEFT JOIN annee_scolaire A  ON A.id = EC.id_annee
        WHERE EC.id_classe = 1
         AND A.annee_debut = 2020
        
        0
      3. madybagayoko1 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci , beaucoup je vais essaye après je vous tiendrais au courant la suite ... merci infiniment
        0
  10. madybagayoko1
     
    bonjour encore , jai trouve un code que je n'arrive pas a transforme a mon gout
    	<?php
    
    
    
    
    define('MIN', 0);
    define('MAX', 500);
    
    
     for ($T=1; $T <= 3 ; $T++) {
    echo "<table border='3' bordercolor='#87CEFA'  cellspacing='0'>
            <tr>
    					<th>ID</th>
                        <th>ELEVE</th>
                        <th>MATIERE</th>
                        <th>NOTECLASSE</th>
                        <th>NOTECOMPO</th>
            </tr>
        ";
     
    for ($i=1; $i <= 2 ; $i++) {
        echo "<tr>";
        for ($j=1; $j <= 5 ; $j++) {          
            do{
                $ran =  rand(MIN, MAX);
            }while ( $ran % 2 == 0) ;
                             
            echo "<td>".$ran."</td>";
        }
        echo "</tr>";
    }
     
    echo "</table>";
    }
    	
    ?>


    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      - A quoi correspondent les champs NOTECLASSE et NOTECOMPO dans ta table ?

      - Dans le code que tu nous montres... où se trouvent les données issues de ta bdd ?

      - L'affichage que tu voulais n'était pas un tableau par élève ?

      - Es-tu passé à PDO ou mysqli
      https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

      - As tu tenu compte de ma proposition d'organisation de tes tables ?
      0