2 tableaux et 2 while

Résolu
t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   -  
t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans mon script, je veux afficher 2 tableaux côte à côte. Pour chaque tableau j'ai une boucle while. Je n'arrive pas à arrêter la première boucle (du 1° tableau) avavnt d'afficher la 2° tableau.
Ce que j'ai écrit :
echo '<div class="tableau_1">';
$select = 'SELECT * FROM ................
echo '<table><tr>';
while ($row = mysql_fetch_array($result)) 
{
............................
if (empty($row['num_pere']))
{
echo '</tr></table>';
echo '</div>';
} }
echo '<div class="branche_2">';

$select = 'SELECT * FROM ....................
echo '<table><tr>';
while ($row8 = mysql_fetch_array($result)) 
{
............................
if (empty($row8['nom']))
{ 
echo '</tr></table>';
echo '</div>';
exit; 
}}

Quand je teste, la boucle sur le tableau_1 est ok, puis la boucle continue à vide sur le tableau_1, et enfin le boucle sur le tableau_2 est ok.
Comment faire pour éviter la boucle à vide du tableau_1 ?
Merci.

5 réponses

  1. JooS Messages postés 2705 Statut Membre 228
     
    Salut !
    Explique comment tu veux afficher tes tableaux, genre, les colonnes, les lignes ??
    Et le test if(empty()), c'est pourquoi faire au juste ?
    0
  2. t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   11
     
    Merci JooS.
    J'avais commencé par faire un tableau par script, et ils fonctionnaient très bien.
    J'avais écrit :
    while ($row = mysql_fetch_array($result)) 
    {
    ............................
    if (empty($row['num_pere']))
    { exit; }
    

    Ainsi, quand je n'avais plus d'enregistrement, le tableau s'arrêtait. Et j'avais tout ce que je demandais.
    Mais en affichant les deux tableaux dans le même script, si je fais un exit à la fin du premier tableau, je n'ai pas le 2°.
    Normalement, je pensais que dans une boucle while, si il n'y a plus d'enregistrement, la boucle seterminait .......
    Ou alors, il faudra que je revoie mon
    $select = 'SELECT * FROM ................
    avant mon while. C'est lui qui doit être mauvais ou mal placé. Pourtant, je recherche un critère dans toute la base, donc ........... !!!!???
    0
  3. youplay Messages postés 138 Statut Membre 4
     
    Pourquoi tu ne place pas
    echo '</tr></table>';
    echo '</div>';
    à la fin de ta boucle? (pas dedans)
    Dans tous les cas tu va devoir le mettre, et 1 fois.
    0
  4. JooS Messages postés 2705 Statut Membre 228
     
    Si la requête retourne quelque chose, alors il va rentrer dans la boucle, ce qui affichera au moins une ligne !
    Le empty de tout a l'heure, je vois toujours pas son utilité, sauf si dans ta BD, tu as des "num_pere" vide, ce qui n'est pas logique !

    $select = 'SELECT * FROM ................';
    $select2 = 'SELECT * FROM ....................';
    
    echo '<div class="tableau_1">';
    echo '<table>';
    while ($row = mysql_fetch_array($result)) 
    {
    echo '<tr><td>'.$row['num_pere'].'</td></tr>';
    }
    echo '</table>';
    echo '</div>';
    
    
    echo '<div class="branche_2">';
    echo '<table>';
    while ($row8 = mysql_fetch_array($result)) 
    {
    echo '<tr><td>'.$row8['nom'].'</td></tr>';
    }
    echo '</table>';
    echo '</div>';

    0
    1. youplay Messages postés 138 Statut Membre 4
       
      Je pense que le empty sert juste pour afficher le </table>.
      Mais il vaut mieux ne pas le laisser dans la boucle!
      Ta version semble plus correcte.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   11
     
    Okkkk !!! Merci, j'ai réussi !!!!
    A +
    0