Arrêter une boucle for
t671
Messages postés
1476
Date d'inscription
Statut
Membre
Dernière intervention
-
greg6614 Messages postés 592 Date d'inscription Statut Membre Dernière intervention -
greg6614 Messages postés 592 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Comment arrêter une boucle for, inclus dans un while, pour que le while puisse continuer ?
Si la condition if ($tonarray[$i]['conjoint'] != "") ne se vérifie pas, je voudrais arrêter la boucle for (else { end }), pour continuer le while !
Merci.
Comment arrêter une boucle for, inclus dans un while, pour que le while puisse continuer ?
$select2 = 'SELECT * FROM individus WHERE num_pere = "'.$row1['num_indiv'].'" AND (SUBSTRING(date_naissance, -4) < "'.$date2.'") ORDER BY RIGHT(date_naissance,4)'; $result2 = mysqli_query($link,$select2) or die ('Erreur : '.mysqli_error($link) ); while ($row2 = mysqli_fetch_array($result2)) { ........................ $tonarray[0]=array("mariage" => "$marg_1" ,"date_mariage" => $row2['date_mariage_1'] , "conjoint" => $row2['num_cj_1']); $tonarray[1]=array("mariage" => "$marg_2" ,"date_mariage" => $row2['date_mariage_2'] , "conjoint" => $row2['num_cj_2']); $tonarray[2]=array("mariage" => "$marg_3" ,"date_mariage" => $row2['date_mariage_3'] , "conjoint" => $row2['num_cj_3']); $tonarray[3]=array("mariage" => "$marg_4" ,"date_mariage" => $row2['date_mariage_4'] , "conjoint" => $row2['num_cj_4']); asort($tonarray); for($i=0; $i<=3; $i++) { if ($tonarray[$i]['conjoint'] != "") { $query4 = 'SELECT * FROM individus WHERE num_indiv LIKE '.$tonarray[$i]['conjoint'].' '; $result4 = mysqli_query($link,$query4) or die(mysqli_error($link)); $row4 = mysqli_fetch_array($result4); ................ } else { end; } } $select2 = 'SELECT * FROM individus WHERE num_pere = "'.$row2['num_indiv'].'" AND (SUBSTRING(date_naissance, -4) < "'.$date2.'") ORDER BY RIGHT(date_naissance,4)'; } $result2 = mysqli_query($link,$select2) or die ('Erreur : '.mysqli_error($link) );
Si la condition if ($tonarray[$i]['conjoint'] != "") ne se vérifie pas, je voudrais arrêter la boucle for (else { end }), pour continuer le while !
Merci.
A voir également:
- Arrêter une boucle for
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Idm for mac - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Instagram for pc - Télécharger - Divers Communication
- Microsoft store download for pc - Guide
4 réponses
Bonjour
C'est l'instruction
https://www.php.net/manual/fr/control-structures.break.php
C'est effectivement souvent bien pratique.
C'est l'instruction
breakqui permet de sortir d'une boucle en PHP :
https://www.php.net/manual/fr/control-structures.break.php
C'est effectivement souvent bien pratique.
Merci, mais si je met break dans le else, ça marche pas !!!!
Par contre, tu vas peut-être pouvoir me trouver une solution ..........
Dans ma boucle ci-dessus, quand j'écris :
si la condition est ok, j'affiche les éléments liés à "conjoint" par un select.
Mais si la condition n'est pas ok, je veux tester avec le $i suivant.
Comment l'écrire ?
Par contre, tu vas peut-être pouvoir me trouver une solution ..........
Dans ma boucle ci-dessus, quand j'écris :
if ($tonarray[$i]['conjoint'] != "")
si la condition est ok, j'affiche les éléments liés à "conjoint" par un select.
Mais si la condition n'est pas ok, je veux tester avec le $i suivant.
Comment l'écrire ?
Tu peux rajouter un booleen dans ta condition de FOR qui lorsqu'il devient faux rend ta condition fausse.
Exemple avec ton code :
Exemple avec ton code :
$select2 = 'SELECT * FROM individus WHERE num_pere = "'.$row1['num_indiv'].'" AND (SUBSTRING(date_naissance, -4) < "'.$date2.'") ORDER BY RIGHT(date_naissance,4)'; $result2 = mysqli_query($link,$select2) or die ('Erreur : '.mysqli_error($link) ); while ($row2 = mysqli_fetch_array($result2)) { ........................ $tonarray[0]=array("mariage" => "$marg_1" ,"date_mariage" => $row2['date_mariage_1'] , "conjoint" => $row2['num_cj_1']); $tonarray[1]=array("mariage" => "$marg_2" ,"date_mariage" => $row2['date_mariage_2'] , "conjoint" => $row2['num_cj_2']); $tonarray[2]=array("mariage" => "$marg_3" ,"date_mariage" => $row2['date_mariage_3'] , "conjoint" => $row2['num_cj_3']); $tonarray[3]=array("mariage" => "$marg_4" ,"date_mariage" => $row2['date_mariage_4'] , "conjoint" => $row2['num_cj_4']); asort($tonarray); $stop = true; for($i=0; $i<=3 && $stop; $i++) { if ($tonarray[$i]['conjoint'] != "") { $query4 = 'SELECT * FROM individus WHERE num_indiv LIKE '.$tonarray[$i]['conjoint'].' '; $result4 = mysqli_query($link,$query4) or die(mysqli_error($link)); $row4 = mysqli_fetch_array($result4); ................ } else { $stop = false; } } $select2 = 'SELECT * FROM individus WHERE num_pere = "'.$row2['num_indiv'].'" AND (SUBSTRING(date_naissance, -4) < "'.$date2.'") ORDER BY RIGHT(date_naissance,4)'; } $result2 = mysqli_query($link,$select2) or die ('Erreur : '.mysqli_error($link) );
Si tu as lu le lien que je t'ai mis :
La valeur par défaut est 1, seulement la structure emboitée immédiate est interrompue.
Si ton while s'arrête aussi, c'est pour une autre raison, à toi de voir laquelle.