Probleme de boucle php avec tableau html
ttam03
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
pyschopathe Messages postés 1974 Date d'inscription Statut Membre Dernière intervention -
pyschopathe Messages postés 1974 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis actuellement en train de développer une site web dynamique. Dans ma bdd j'ai uploader des images, jusque là pas de problème, mais lors de l'affichage j'aimerais faire 4 colonnes et 3 lignes pour afficher une image par mois. La première ligne s'affiche sur la même ligne (comme voulu, mais après ça devrait créer une autre ligne avec 4 colonnes) mais après les images se mette l'une en dessous des autres...
Voici mon code:
<div id="action">
<table><tr>
<?php
while ($donnees = mysql_fetch_assoc ($requete))
{ $i++;
switch ($i)
{
case ($i <= 4):
?>
<td>
<img src="factures/<?php echo $donnees['lien_factures']; ?>" alt="<?php echo $variable['id_factures']; ?>" width="100" height="100" />
</td>
<?php
break;
case (($i > 4)&&($i <=8)):
?>
<tr>
<td>
<img src="factures/<?php echo $donnees['lien_factures']; ?>" alt="<?php echo $variable['id_factures']; ?>" width="100" height="100" />
</td>
</tr>
<?php
break;
case (($i > 8)&&($i <=12)):
?>
<tr>
<td>
<img src="factures/<?php echo $donnees['lien_factures']; ?>" alt="<?php echo $variable['id_factures']; ?>" width="100" height="100" />
</td>
</tr>
<?php
break;
}
}
?>
</tr>
</table>
</div>
Merci de votre aide.
Je suis actuellement en train de développer une site web dynamique. Dans ma bdd j'ai uploader des images, jusque là pas de problème, mais lors de l'affichage j'aimerais faire 4 colonnes et 3 lignes pour afficher une image par mois. La première ligne s'affiche sur la même ligne (comme voulu, mais après ça devrait créer une autre ligne avec 4 colonnes) mais après les images se mette l'une en dessous des autres...
Voici mon code:
<div id="action">
<table><tr>
<?php
while ($donnees = mysql_fetch_assoc ($requete))
{ $i++;
switch ($i)
{
case ($i <= 4):
?>
<td>
<img src="factures/<?php echo $donnees['lien_factures']; ?>" alt="<?php echo $variable['id_factures']; ?>" width="100" height="100" />
</td>
<?php
break;
case (($i > 4)&&($i <=8)):
?>
<tr>
<td>
<img src="factures/<?php echo $donnees['lien_factures']; ?>" alt="<?php echo $variable['id_factures']; ?>" width="100" height="100" />
</td>
</tr>
<?php
break;
case (($i > 8)&&($i <=12)):
?>
<tr>
<td>
<img src="factures/<?php echo $donnees['lien_factures']; ?>" alt="<?php echo $variable['id_factures']; ?>" width="100" height="100" />
</td>
</tr>
<?php
break;
}
}
?>
</tr>
</table>
</div>
Merci de votre aide.
A voir également:
- Probleme de boucle php avec tableau html
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Editeur html - Télécharger - HTML
2 réponses
Je te conseille plutôt un code de ce genre :
<?php $images = array(); while ( $donnees = mysql_fetch_assoc ($requete) ) { $images[] = $donnees; } if ( count( $images ) != 12 ) die( 'Pas le bon nombre d'images' ); echo '<div id="action">'; echo '<table>' // on boucle sur les lignes for ( $i=0 ; $i<3 ; ++$i ) { echo '<tr>'; for ( $j=0 ; $j<4 ; ++$j ) { echo '<img src="factures/'.$images[$i*$j]['lien_factures'].'" alt="'.$images[$i*$j]['id_factures'].'" width="100" height="100" />'; } echo '</tr>'; } echo '</table>'; echo '</div>';Plus propre, plus rapide, plus lisible, et ça devrait faire ce que tu veux.
Merci de m'avoir répondu. Mais ça me marque "Pas le bon nombre d'images". Ce qui est normale car je n'ai pas 12 images encore, chaque mois je rajoute une photo... (Actuellement j'ai 7 photos donc normalement il y a une ligne de 4 images et une autre de 3 images. Désolé de m'être mal exprimé, Peux tu encore m'aider ?
Effectivement, ça change des choses >_<. Je modifie le code et je te le renvoie.
edit : voilà le code :
edit : voilà le code :
$images = array(); while ( $donnees = mysql_fetch_assoc ($requete) ) { $images[] = $donnees; } $nbImages = count( $images ); if ( $nbImages < 12 ) { for ( $i=$nbImages ; $i<12 ; ++$i ) { $images[] = null; } } echo '<div id="action">'; echo '<table>' // on boucle sur les lignes for ( $i=0 ; $i<3 ; ++$i ) { echo '<tr>'; for ( $j=0 ; $j<4 ; ++$j ) { if ( $images[$i*$j] !== null ) { echo '<td><img src="factures/'.$images[$i*$j]['lien_factures'].'" alt="'.$images[$i*$j]['id_factures'].'" width="100" height="100" /></td>'; } else { echo '<td></td>'; } } echo '</tr>'; } echo '</table>'; echo '</div>';Avec ce code, le tableau sera intégralement construit, mais certaines cellules seront vides si tu n'as pas le bon nombre d'images. A toi de modifier le style des cellules vides en fonction de ce que tu souhaite voir apparaitre.