2 tableaux et 2 while

Résolu
t671 Messages postés 1476 Date d'inscription   Statut Membre Dernière intervention   -  
t671 Messages postés 1476 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.
A voir également:

5 réponses

JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   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
t671 Messages postés 1476 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
youplay Messages postés 134 Date d'inscription   Statut Membre Dernière intervention   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
JooS Messages postés 2468 Date d'inscription   Statut Membre Dernière intervention   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
youplay Messages postés 134 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

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