Page 1 sur 1

Génerer un tableau

Posté : 12 août 2005, 12:46
par vares2
J'aimerais realiser une galérie photos eh PHP.
Pour cela jaimerais afficher les photos dans un tableau de 2 colonnes et de n/2 lignes avec n etant le nombre d'enregistrements de ma table photos

J'aimerais savoir comment puis je generer ce tableau!

merci pour l'aide

Posté : 12 août 2005, 13:04
par ouckileou
en admettant que tu récupères la liste des photos dans un tableau :
<table border="1">
	<tr>
	<?php
	$tabPhotos = Array('photo1.jpg','photo2.jpg','photo3.jpg','photo4.jpg','photo5.jpg');
	
	foreach($tabPhotos as $indice => $photo) {
		echo '<td>'.$indice.' : '.$photo.'</td>';
		// toutes les 2 photos on change de ligne (+1 pour ne pas sauter de ligne à la photo n°0)
		echo (($indice+1) %2 == 0)?'</tr><tr>':'';
	}
	// s'il y a un nombre impair de photos on rajoute une cellule
	if (count($tabPhotos) % 2 != 0) {
		echo '<td>&nbsp;</td>';
	}
	?>
	</tr>
</table>
la boucle est à adapter si tu récupères tes photos depuis une base de données
sinon, une petite recherche dans le forum te montrera d'autres méthodes ;)

Génerer un tableau

Posté : 17 août 2005, 12:56
par vares2
en fait je veux ke le script genere le tableau a partir des images stockées dans la base de données!

merci

Posté : 17 août 2005, 13:45
par mere-teresa
Qu'as-tu fait comme code pour le moment ?

Posté : 17 août 2005, 15:00
par vares2
jai rien codé pour le moment
je suis debutant

Posté : 17 août 2005, 16:24
par mere-teresa
ouckileou t'a donné le code pour générer un tableau, pour ma part, je te recommande la lecture du tutorial "Comment interfacer PHP et MySQL", tu sauras quelles données tu dois mettre.

Sinon : prends un script tout fait...mais si tu veux apprendre, l'album photo n'est pas la chose la plus simple.

Posté : 01 sept. 2005, 15:55
par bins
Je n'arrive pas trop à utiliser ce script, car en fait j'ai deux tableaux :
$tab = Array('photo1.jpg' ...)
$tab2 = Array('legende1.jpg' ...)

Donc je voudrais faire la meme chose mais pour chaque photo(+legende) il faudrait 2 ligne, une pour la photo et une pour la légende
Comment faire ?

Posté : 02 sept. 2005, 01:15
par Grummfy
hello,
soit tu rassembles tes deux tableau en un seul mais double
genre
array(
array('image_1.jpg', 'legende1.jpg')
array('image_2.jpg', 'legende2.jpg')
)

soit si tu es sur et certain que t'es deux tableau sont pareil, qu'il ont la même taille et qu'il ont des indice commun, fait ceci:
 <table border="1">
    <tr>
    <?php
    $tabPhotos = Array('photo1.jpg','photo2.jpg','photo3.jpg','photo4.jpg','photo5.jpg');
$tabLegende = Array('legende1','legende2','legende3','legende4','legende5');
    
    foreach($tabPhotos as $indice => $photo) {
        echo '<td>'.$indice.' : '.$photo.'</td>';
        echo '<td>'.$indice.' : '.$tabLegende[ $indice ].'</td>
        echo '</tr><tr>':'';
    }
    // s'il y a un nombre impair de photos on rajoute une cellule
    if (count($tabPhotos) % 2 != 0) {
        echo '<td>&nbsp;</td>';
    }
    ?>
    </tr>
</table>

Posté : 03 sept. 2005, 01:19
par Gab136978
Moi j'ai fait ceci et ca marche plutôt bien.


$sql="SELECT photo, legende FROM monAlbum";

$req=mysql_query($sql);
$nd=0;
while($ligne= mysql_fetch_assoc($req))
{

$photo[$nd]=$ligne[photo];
$legende[$nd]=$ligne['legende'];$nd++;

}

for($d = 0; $d<$nd-1; $d=$d+2)//pour aligner les photos 2 par 2..
{
?>

<TABLE>
<TR>
<TD><img src="<?echo $photo[$d];?>"></TD>
<TD><img src="<?echo $photo[$d+1];?>"></TD>
</TR>

<TR>
<TD>$legende[$d]</</TD>
<TD>$legende[$d+1]</TD>
</TR>

</TABLE>


<?
}
?>

//Fin du code
----------------------------------------------------------------

<TD><img src="<?echo $photo[$d].'.jpg';?>"></TD> // aussi si l'extension ne fait partie de l'enregistrement...