Boucle for

Résolu/Fermé
zerdg Messages postés 86 Date d'inscription jeudi 21 mai 2015 Statut Membre Dernière intervention 30 novembre 2017 - Modifié par zerdg le 22/05/2015 à 10:28
DesTunK Messages postés 360 Date d'inscription dimanche 27 janvier 2013 Statut Membre Dernière intervention 24 février 2016 - 22 mai 2015 à 11:04
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 1723 Date d'inscription samedi 25 février 2012 Statut Membre Dernière intervention 29 mars 2018 369
22 mai 2015 à 10:27
Si j'ai bien compris tu veux deux listes à la suite ? Pourquoi ne pas faire deux boucles for ?
0
zerdg Messages postés 86 Date d'inscription jeudi 21 mai 2015 Statut Membre Dernière intervention 30 novembre 2017 2
22 mai 2015 à 10:40
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 1723 Date d'inscription samedi 25 février 2012 Statut Membre Dernière intervention 29 mars 2018 369
Modifié par Danelectro le 22/05/2015 à 10:43
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 360 Date d'inscription dimanche 27 janvier 2013 Statut Membre Dernière intervention 24 février 2016 157
22 mai 2015 à 10:56
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 360 Date d'inscription dimanche 27 janvier 2013 Statut Membre Dernière intervention 24 février 2016 157
Modifié par DesTunK le 22/05/2015 à 11:02
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 86 Date d'inscription jeudi 21 mai 2015 Statut Membre Dernière intervention 30 novembre 2017 2
22 mai 2015 à 10:50
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 360 Date d'inscription dimanche 27 janvier 2013 Statut Membre Dernière intervention 24 février 2016 157
22 mai 2015 à 10:55
Car dans ton exemple, B5 = B15, c'est une coincidence ?
0
zerdg Messages postés 86 Date d'inscription jeudi 21 mai 2015 Statut Membre Dernière intervention 30 novembre 2017 2
Modifié par zerdg le 22/05/2015 à 11:01
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 1723 Date d'inscription samedi 25 février 2012 Statut Membre Dernière intervention 29 mars 2018 369
22 mai 2015 à 11:03
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 360 Date d'inscription dimanche 27 janvier 2013 Statut Membre Dernière intervention 24 février 2016 157
22 mai 2015 à 11:04
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