Page 1 sur 1

Galerie photos (Presentation sortie sur 3 ou 4 colonnes)

Posté : 10 sept. 2006, 13:53
par fabien_14
Bonjour,

Voila J'ai une galerie photos, et je sort mes photo d'une requete SQL, mais je n'arrive pas a faire en sorte que mes photos sorte sur n colonnes sous cette forme ...

Code : Tout sélectionner

<div class="photos-4"> <span class="photo"><a href="image.jpg" class="thumb"><img src="image.jpg" alt="A swimming pool for adults"><span class="desc">description</span> </a></span> <span class="photo"><a href="image.jpg" class="thumb"><img src="images.jpg" ><span class="desc">description</span> </a></span> ETC ... suivant le nombre de photos qu'il y a dans la requete. <div class="clear">&nbsp; </div> </div>
Mon code de la boucle est celui ci : a partir de ce code je voudrai avoir le code d'arriver ci dessus mais je bloque ... je ne maffiche pas du tous ceci.
<?php

$req = "SELECT * FROM up_image2 ";
   
  $res = mysql_query($req);
  while($data = mysql_fetch_assoc($res))
  {
  $tablo[]=$data;
  }
  $nbcol=6;

  echo '<div class="photos-4">';
  $nb=count($tablo);
  for($i=0;$i<$nb;$i++){
   
  //les valeurs à afficher
  $valeur1=$tablo[$i]['id_photos'];
  $valeur2=$tablo[$i]['nom_image'];

  if($i%$nbcol==0)
  echo '';

  echo '<span class="photo"><a href="image.jpg" class="thumb"><img src="image_up/photos_carnet/mini/',$valeur1,'-mini.png" ><span class="desc">texte</span></a></span>';

  if($i%$nbcol==($nbcol-1))
  echo '';

  }
  echo ' <div class="clear">&nbsp;</div></div>';

?>   
Merci de vos reponse

Posté : 10 sept. 2006, 14:24
par Cyrano
Tu aurais plusieurs possibilités :
soit tu as fixé d'avance le nombre de colonnes et dans ce cas tu devrais faire une recherche sur le forum avec le mot clé "modulo";
Soit tu veux un système fluide qui s'adapte de toutes façons selon la définition du moniteur de l'internaute et donc la place disponible et dans ce cas, intéresses-toi aux styles CSS avec entre autres choses un "float: left"

Posté : 12 sept. 2006, 01:25
par zigz4g
<?php
$req = "SELECT * FROM up_image2 ";
$res = mysql_query($req);
while($data = mysql_fetch_assoc($res)) {
    $tablo[] = $data;
}
$nbcol = 6;
echo '<div class="photos-4">';
$nb = count($tablo);
for ($i = 0; $i < $nb; $i++) {
    //les valeurs à afficher
    $valeur1 = $tablo[$i]['id_photos'];
    $valeur2 = $tablo[$i]['nom_image'];
    if (($i % $nbcol) == 0) // Est tu sur de ton if ??? La il fait juste le echo '' si c'est == à 0.
        echo '';
    echo '<span class="photo"><a href="image.jpg" class="thumb"><img src="image_up/photos_carnet/mini/', $valeur1, '-mini.png" ><span class="desc">texte</span></a></span>';
    if (($i % $nbcol) == ($nbcol - 1))
        echo '';
}
echo ' <div class="clear">&nbsp;</div></div>';
?>
Ne serait ce pas un if dans ce style ?
<?php
if (($i % $nbcol) == 0) {
    echo '';
    echo '<span class="photo"><a href="image.jpg" class="thumb"><img src="image_up/photos_carnet/mini/', $valeur1, '-mini.png" ><span class="desc">texte</span></a></span>';
}
?>
Mais je n'ai pas de serveur pour lancer ton script sur le moment. Je vois juste que faire un test if sans accolades, il n'y a que l'instruction suivante qui est prise en compte.