2 tableaux et 2 while

Résolu
t671 Messages postés 1632 Statut Membre -  
t671 Messages postés 1632 Statut Membre -
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 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
t671 Messages postés 1632 Statut Membre 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 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
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
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

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

Posez votre question
t671 Messages postés 1632 Statut Membre 11
 
Okkkk !!! Merci, j'ai réussi !!!!
A +
0