Difficultés afficher des données dans while loop

Résolu
Bonjour,

J'ai des difficultés pour afficher des resultats de la base de donées dans while loop. J'ai plusiers ligne dans mes resultats. je voudrais afficher les data par mesure.

par exemple

termA
ligne 1
ligne 2
ligne 3
<br>
termB
ligne 4
ligne 5
<br>
termC
ligne 6
ligne 7
ligne 8
ligne 9
ligne 10
ligne 11
<br>

$terma=3;
$termb=2;
$termc=5;
$total=3+2+5;
$sql="SELECT * FROM TABLE ORDER BY RAND() LIMIT ".$total;
$result=mysqli_query($connect,$sql);
while($row = mysqli_fetch_assoc($result))
{
               ????????
}


Merci d'avance.

3 réponses

  1. Contributeur
    bonjour, peux-tu expliquer le lien entre ton code et ton exemple? que contient ta table?
    que signifie "afficher par mesure"?
    1. table contient 2 colonne(id_nom et nom). j'ai 3 select. chaque select contien des nombre d'un jusqua 25. je choisi numero 3(3 personne) en select 1 , numero 2(2 personne) en select 2, numero 5(5 personne) en select 3. je choisi les nom aleatoirles et je voudrais avoir les reultats comme

      terminal X
      nom 1
      nom 2
      nom 3

      terminal Y
      nom 4
      nom 5

      terminal Z
      nom 6
      nom 7
      nom 8
      nom 9
      nom10
      1. Modérateur
        Bonjour,
        un truc du genre ?

        $sql="SELECT * FROM TABLE ORDER BY RAND() LIMIT ".$total;
        $result=mysqli_query($connect,$sql);
        $aDatas[] = array();
        while($row = mysqli_fetch_assoc($result))
        {
          $aDatas[] = $row;
        }
        
        
        //affichage des premiers :
        echo "<pre><h1>terma</h1><br>";
        for($i=0;$i<$terma;$i++){
          print_r($row);
          echo "<br>";
        }
        
        
        
        //affichage des seconds :
        echo "<pre><h1>termb</h1><br>";
        for($i=$terma;$i<$termb;$i++){
          print_r($row);
          echo "<br>";
        }
        echo "</pre>";
        
        
        //affichage des premiers :
        echo "<pre><h1>termc</h1><br>";
        for($i=$termb;$i<$termc;$i++){
          print_r($row);
          echo "<br>";
        }
        echo "</pre>";
        

        1. Modérateur
          Petite erreur .. ça devrait être un peu mieux:
          //affichage des premiers :
          echo "<pre><h1>terma</h1><br>";
          for($i=0;$i<$terma;$i++){
            print_r($row);
            echo "<br>";
          }
          
          
          
          //affichage des seconds :
          echo "<pre><h1>termb</h1><br>";
          for($i=$terma;$i<$termb+$terma;$i++){
            print_r($row);
            echo "<br>";
          }
          echo "</pre>";
          
          
          //affichage des premiers :
          echo "<pre><h1>termc</h1><br>";
          for($i=$termb+$terma;$i<$total;$i++){
            print_r($row);
            echo "<br>";
          }
          echo "</pre>";
          
        2. J'ai copié et collé,(modifié parapport mes code) mais affiche rien.
        3. Modérateur
          Je suis un boulet .... désolé
          Voici :
          $sql="SELECT * FROM TABLE ORDER BY RAND() LIMIT ".$total;
          $result=mysqli_query($connect,$sql);
          $aDatas[] = array();
          while($row = mysqli_fetch_assoc($result))
          {
            $aDatas[] = $row;
          }
          
          
          //affichage des premiers :
          echo "<pre><h1>terma</h1><br>";
          for($i=0;$i<$terma;$i++){
            print_r($aDatas[$i]);
            echo "<br>";
          }
          
          
          
          //affichage des seconds :
          echo "<pre><h1>termb</h1><br>";
          for($i=$terma;$i<$termb+$terma;$i++){
            print_r($aDatas[$i]);
            echo "<br>";
          }
          echo "</pre>";
          
          
          //affichage des premiers :
          echo "<pre><h1>termc</h1><br>";
          for($i=$termb+$terma;$i<$total;$i++){
            print_r($aDatas[$i]);
            echo "<br>";
          }
          echo "</pre>";
          
        4. J'ai réussi. merci jordane. you are great man.