Boucle for

Résolu
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?

2 réponses

  1. Si j'ai bien compris tu veux deux listes à la suite ? Pourquoi ne pas faire deux boucles for ?
    1. 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.
    2. 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>";
    3. C'est un bout de la réponse, mais ça ne permet pas de ne pas avoir les champs entre B9 et B15
  2. 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 ?
    1. 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
    2. Car dans ton exemple, B5 = B15, c'est une coincidence ?
    3. 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
    4. Dans ce cas une boucle while est plus appropriée. Changer à la main un indice dans un for c'est pas conseillé.
    5. 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