Boucle for

Résolu
zerdg Messages postés 88 Statut Membre -  
DesTunK Messages postés 392 Statut Membre -
Bonjour,
j'ai codé une boucle for qui m'affiche une liste d'identifiant. Elle marche mais j'aimerais générer cette liste espacé de 6
voici le code
for($i=5; $row = $req->fetch(); $i++){

echo 'B'.$i, "- ".$row['identifiant']."<br/>";
}

affiche :
B5- 13
B6- 14
B7- 15
B8- 16
B9- 17
et je voudrais ça :
B5- 13
B6- 14
B7- 15
B8- 16
B9- 17

B15- 13
B16- 14
B17- 15
B18- 16
B19- 17
Pouvez-vous m'aider?
A voir également:

2 réponses

Danelectro Messages postés 1844 Statut Membre 371
 
Si j'ai bien compris tu veux deux listes à la suite ? Pourquoi ne pas faire deux boucles for ?
0
zerdg Messages postés 88 Statut Membre 2
 
il faut que les deux liste (même s'il y en à plus) doivent être séparé de 6 chiffres car je ne peux pas prévoir le nombre d'identifiant.
0
Danelectro Messages postés 1844 Statut Membre 371
 
Et tu peux avoir plus de 2 groupes d'identifiants ?
Dans ce cas tu fais par exemple (dans la boucle for) :

if($i % 6 == 0)
echo "<br>";
0
DesTunK Messages postés 392 Statut Membre 157
 
C'est un bout de la réponse, mais ça ne permet pas de ne pas avoir les champs entre B9 et B15
0
DesTunK Messages postés 392 Statut Membre 157
 
Essaie d'ajouter une condition avant ton echo alors non ?

If () {
echo *****
}

Après, à toi de changer la condition en mettant un modulo pour pour faire ta boule :)

Enfin, je suis pas sur de comprendre, les valeurs de B5 et B15 sont toujours identiques ? Et ca le sera pour B25 ?
0
zerdg Messages postés 88 Statut Membre 2
 
Les valeurs B5,B6 ... sont en faite les positions de différentes cellules pour excel elle sont là juste pour que je sache si ma boucle incrémente correctement
0
DesTunK Messages postés 392 Statut Membre 157
 
Car dans ton exemple, B5 = B15, c'est une coincidence ?
0
zerdg Messages postés 88 Statut Membre 2
 
oui c'est normal je veux que la liste ce répète X fois espacé de 6 cellules
du coups B5 =B15=B25 etc
0
Danelectro Messages postés 1844 Statut Membre 371
 
Dans ce cas une boucle while est plus appropriée. Changer à la main un indice dans un for c'est pas conseillé.
0
DesTunK Messages postés 392 Statut Membre 157
 
Alors c'est plus simple :)

$val = 5;
for($i=$val; $row = $req->fetch(); $i++){
   if($i<$val+5 || $i>val+9)
      echo 'B'.$i, "- ".$row['identifiant']."<br/>";
}


Après, je te conseille de changer la condition pour avoir quelquechose avec du modulo
0