Boucle en php avec les <TR> et <TD>
Résolu
Gregg78
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un souci PHP concernant une boucle qui je pense ne doit pas être très compliquée mais je sèche !!!
En fait j'ai une table avec plein d'entrées (des photos) et je voudrais les afficher 4 par 4, ligne par ligne, dans un tableau mais je sais pas trop comment écrire le code PHP.
Voilà mon code actuellement :
<table>
<?php
$retour = mysql_query('SELECT * FROM albums_fr ORDER BY id');
while ($donnees = @mysql_fetch_array($retour))
{
?>
<tr><td><img src="photos/<?php echo $donnees['photo']; ?>"></td></tr>
<?php
}
?>
</table>
Je voudrais donc avoir 4 cellules TD pour la première ligne puis passer à une seconde ligne TR avec 4 nouveaux TD, etc...
Merci d'avance pour votre précieuse aide et voutre temps !
Gregg
j'ai un souci PHP concernant une boucle qui je pense ne doit pas être très compliquée mais je sèche !!!
En fait j'ai une table avec plein d'entrées (des photos) et je voudrais les afficher 4 par 4, ligne par ligne, dans un tableau mais je sais pas trop comment écrire le code PHP.
Voilà mon code actuellement :
<table>
<?php
$retour = mysql_query('SELECT * FROM albums_fr ORDER BY id');
while ($donnees = @mysql_fetch_array($retour))
{
?>
<tr><td><img src="photos/<?php echo $donnees['photo']; ?>"></td></tr>
<?php
}
?>
</table>
Je voudrais donc avoir 4 cellules TD pour la première ligne puis passer à une seconde ligne TR avec 4 nouveaux TD, etc...
Merci d'avance pour votre précieuse aide et voutre temps !
Gregg
A voir également:
- Td en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour à la ligne php ✓ - Forum PHP
- Retour a la ligne avec Echo comment faire ? - Forum Webmastering
- Alert php - Forum PHP
7 réponses
<table>
<?php
$retour = mysql_query('SELECT * FROM albums_fr ORDER BY id');
$i = '0';
while ($donnees = @mysql_fetch_array($retour)) {
if ( $i == '0' ) { echo '<tr>'; }
echo '<td><img src="photos/'.$donnees['photo'].'" alt="" /></td>';
$i++;
if ( $i == '4' ) {
echo '</tr>';
$i = '0';
}
}
if ( $i != '0') { echo '</tr>'; }
?>
</table>
<?php
$retour = mysql_query('SELECT * FROM albums_fr ORDER BY id');
$i = '0';
while ($donnees = @mysql_fetch_array($retour)) {
if ( $i == '0' ) { echo '<tr>'; }
echo '<td><img src="photos/'.$donnees['photo'].'" alt="" /></td>';
$i++;
if ( $i == '4' ) {
echo '</tr>';
$i = '0';
}
}
if ( $i != '0') { echo '</tr>'; }
?>
</table>
:-) en effet j'y ai bien pensé mais là je dois utilisé un tableau !
Sinon je suis d'accord qu'avec un float:left cela aurait résolu pas mal de choses assez vite... mais merci pour le conseil !
Sinon je suis d'accord qu'avec un float:left cela aurait résolu pas mal de choses assez vite... mais merci pour le conseil !
Pour garder ton tableau tu peux faire :
<table>
<?php
$retour = mysql_query('SELECT * FROM albums_fr ORDER BY id');
$i = 0;
while ($donnees = @mysql_fetch_array($retour))
{
?>
if ( $i == 0 ) {
echo '<tr>';
} elseif ( $i%4 == 0 and $i != 0) {
echo '</tr><tr>';
}
<td><img src="photos/<?php echo $donnees['photo']; ?>"></td>
<?php
}
?>
</tr>
</table>
<table>
<?php
$retour = mysql_query('SELECT * FROM albums_fr ORDER BY id');
$i = 0;
while ($donnees = @mysql_fetch_array($retour))
{
?>
if ( $i == 0 ) {
echo '<tr>';
} elseif ( $i%4 == 0 and $i != 0) {
echo '</tr><tr>';
}
<td><img src="photos/<?php echo $donnees['photo']; ?>"></td>
<?php
}
?>
</tr>
</table>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci pour ce début mais cela ne marche pas !
J'ai rajouté un ++$i; et cela me donne bien une ligne mais sans passage à la ligne au bout des 4 photos...
J'ai rajouté un ++$i; et cela me donne bien une ligne mais sans passage à la ligne au bout des 4 photos...
et en passant par un array:
<?php $retour = mysql_query('SELECT * FROM albums_fr ORDER BY id'); $array_photos=array(); $ligne=0; $i=0; while ($donnees = @mysql_fetch_array($retour)) { //on va empiler les photos dans un array a deux dimensions les lignes en dim1 avec les 4 photos en dim 2 $array_photos[$ligne][$i]=$donnees['photo']; $i++; if($i==4){ ///arrivé à 4 on passe a la ligne suivante et on remet $i à 0 $ligne ++; $i=0; } } ?> <table> <?php //on va genrer le tableau en parcourant les deux dimensions de l'array for ($li=0;$li<sizeof($array_photos);$li++){ //d'abord les lignes en dim1 echo '<tr>'; for($j=0;$j<sizeof($array_photos[$li];$j++){ //puis par ligne les photos en dim2 echo '<td><img src="photos/'.$array_photos[$li][$j].'</td>'; } echo '</tr>'; } ?> </table>
après réflexion un petit complément pour le cas ou moins de 4 photos dans la dernière ligne
<?php $retour = mysql_query('SELECT * FROM albums_fr ORDER BY id'); $array_photos=array(); $ligne=0; $i=0; while ($donnees = @mysql_fetch_array($retour)) { //on va empiler les photos dans un array a deux dimensions les lignes en dim1 avec les 4 photos en dim 2 $array_photos[$ligne][$i]=$donnees['photo']; $i++; if($i==4){ ///arrivé à 4 on passe a la ligne suivante et on remet $i à 0 $ligne ++; $i=0; } } //si on a moins de 4 photos dans la dernière ligne il faut completer pour avoir toujours 4 td if(sizeof($array_photos[$ligne])<4){ while ($i<=4){ $array_photos[$ligne][$i]=' ';//on complete avec un espace } } ?> <table> <?php //on va genrer le tableau en parcourant les deux dimensions de l'array for ($li=0;$li<sizeof($array_photos);$li++){ //d'abord les lignes en dim1 echo '<tr>'; for($j=0;$j<sizeof($array_photos[$li];$j++){ //puis par ligne les photos en dim2 echo '<td><img src="photos/'.$array_photos[$li][$j].'</td>'; } echo '</tr>'; } ?> </table>