PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 02-02-2011 17:42:51

philippf
Membre
Inscription : 02-02-2011
Messages : 12

Compléter une boucle [Résolu]

Bonjour,

Une requete me renvoie X lignes composées de DateDebut et DateFin.
Je voudrai construire un tableau avec 5 colonnes dont chaque cellule de chaque colonne contiendrait "$DateDebut $DateFin"
Voilà ma boucle pour le moment

$sql = mysql_query("SELECT * FROM semaines WHERE id_semaine < 54");
$nb_lignes = mysql_num_rows($sql);
for ($i=0; $i<$nb_lignes; $i++){
  $id_semaine = mysql_result($sql,$i,"id_semaine");
  //traitement de la date de début
  $debut = mysql_result($sql,$i,"debut");
  list($anneeD, $moisD, $jourD) = explode('-', $debut);
  $DateDebut = $jourD.' '.$moisD;
  //traitement de la date de fin
  $fin = mysql_result($sql,$i,"fin");
  list($anneeF, $moisF, $jourF) = explode('-', $fin);
  $DateFin = $jourF.' '.$moisF;
                echo "<br />$id_semaine du $DateDebut au $DateFin";
}

Je ne vois comment modier ma boucle pour avoir les 5 colonnes.

Merci d'avance

Hors ligne

#2 02-02-2011 19:10:13

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Compléter une boucle [Résolu]

echo '<table><tr>';
for(...)
{
  echo '<td>';
  echo ....dates....
  echo '</td>';
}
echo '</tr></table>';

Est-cela ?

Hors ligne

#3 02-02-2011 21:11:28

philippf
Membre
Inscription : 02-02-2011
Messages : 12

Re : Compléter une boucle [Résolu]

Je crois que je ne me suis pas bien fait comprendre.

Il me faut une boucle qui me donnerait quelque chose du genre :
<tr>
      <td>$datedebut $datefin</td> <td>$datedebut $datefin</td><td>$datedebut $datefin</td><td>$datedebut $datefin</td><td>$datedebut $datefin</td>
</tr>
<tr>
      <td>$datedebut $datefin</td> <td>$datedebut $datefin</td><td>$datedebut $datefin</td><td>$datedebut $datefin</td><td>$datedebut $datefin</td>
</tr>
etc...

Autrement dit tous les 5 enregistrements je crée une nouvelle ligne

Hors ligne

#4 02-02-2011 22:18:46

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Compléter une boucle [Résolu]

Dans ce cas un modulo s'impose. smile

echo '<table><tr>';
for(...)
{
  if( $i != 0 && $i % 5 == 0 ) // tous les 5 enregistrements on change de ligne
    echo '</tr><tr>';
  echo '<td>date</td>';
}
echo '</tr></table>';

Hors ligne

#5 03-02-2011 09:24:57

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Compléter une boucle [Résolu]

Saluton,
En toute rigueur, chaque <tr></tr> devrait comporter le même nombre de <td></td>, ce qui veut dire qu'il faudrait être sûr que le nombre "d'enregistrements" soit un multiple de 5, ou bien que l'on vérifiera, au sein de la boucle et si l'on atteint la fin de parcours de $sql pour générer, le cas échéant, un colspan=5-nbColonnesDéjàCrées dans le <td></td> suivant vide.

Oui, je sais, on va encore dire que je chipote.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#6 05-02-2011 16:59:31

philippf
Membre
Inscription : 02-02-2011
Messages : 12

Re : Compléter une boucle [Résolu]

Merci, ça marche comme je voulais

Je ne sais pas si on peut et comment mettre un "Résolu" !!

Hors ligne

Pied de page des forums