Génerer un tableau

Eléphant du PHP | 68 Messages

12 août 2005, 12:46

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
Marino TEKI
In God I trust

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 août 2005, 13:04

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 ;)

Eléphant du PHP | 68 Messages

17 août 2005, 12:56

en fait je veux ke le script genere le tableau a partir des images stockées dans la base de données!

merci
Marino TEKI
In God I trust

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

17 août 2005, 13:45

Qu'as-tu fait comme code pour le moment ?

Eléphant du PHP | 68 Messages

17 août 2005, 15:00

jai rien codé pour le moment
je suis debutant
Marino TEKI
In God I trust

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

17 août 2005, 16:24

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.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

bins
Invité n'ayant pas de compte PHPfrance

01 sept. 2005, 15:55

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 ?

Eléphant du PHP | 142 Messages

02 sept. 2005, 01:15

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>

Gab136978
Invité n'ayant pas de compte PHPfrance

03 sept. 2005, 01:19

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...