Galerie php sur plusieurs pages

Fermé
shadowsg Messages postés 14 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 11 octobre 2010 - Modifié par shadowsg le 11/10/2010 à 18:54
Bonjour,
J'ai trouvé un script affichant des miniatures, mais il me pose problème: j'aimerais faire en sorte qu'il y ai 16 images par page, et que si il y en a plus dans mon dossier, il s'affiche en dessous le nombre de pages (comme sur toute galerie qui se respecte^^) en lien permettant de naviguer sur chaque page.
J'ai des bases en php/mysql mais je ne vois vraiment pas comment m'y prendre.

Voici mon script:
<?php  
// on déclare un tableau qui contiendra le nom des fichiers de nos miniatures  
$tableau = array();  
// on ouvre notre dossier contenant les miniatures  
$dossier = opendir ('./images/mini/');  
while ($fichier = readdir ($dossier)) {  
    if ($fichier != '.' && $fichier != '..' && $fichier != 'portfolio.php') {  
        // on stocke le nom des fichiers des miniatures dans un tableau  
        $tableau[] = $fichier;  
    }  
}  
closedir ($dossier);  


// on défini le nombre de colonne sur lesquelles vont s'afficher nos miniatures  
$nbcol=4;  
// on compte le nombre de miniatures  
$nbpics = count($tableau);  

// si on a au moins une miniature, on les affiche toutes  
if ($nbpics != 0) {  
    echo '<table>';  
    for ($i=0; $i<$nbpics; $i++){  
        if($i%$nbcol==0) echo '<tr>';  
        // pour chaque miniature, on affiche la miniature munie d'un lien vers la photo en taille réelle  
        echo '<td><a class="lienimg" rel="clearbox[gallery=]" title="" href="images/pics/'  , $tableau[$i] , '"><img class="imgs" src="images/mini/' , $tableau[$i] , '" alt="Image" /></a></td>';  
        if($i%$nbcol==($nbcol-1)) echo '</tr>';  
    }  
    echo '</table>';  
}  
// si on a aucune miniature, on affiche un petit message :)  
else echo 'Aucune image à afficher';  
?>  


J'ai trouvé un autre scripte qui le fais mais malgré la lecture du code, je ne comprend pas comment il fonctionne:

Fichier config:
<?php  
// config_galerie.php  
// Définition des variables globales de la galerie  

$host = "localhost"; // voir hébergeur  
$user = "root"; // vide ou "root" en local  
$pass = ""; // vide en local  
$bdd = "00"; // nom de la BD  

$nb_images_page = 16; // Nombre d'images par page  
$nb_images_ligne = 4;  // Nombre d'images par ligne  

// Ouverture des connexions à la base de données  
@mysql_connect($host,$user,$pass)  
   or die("Impossible de se connecter");  
@mysql_select_db($bdd)  
   or die("Impossible de se connecter");  
?>  


Fichier index lié au fichié config:
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<title>Ma galerie d'images !</title>  
<script type="text/javascript">  
<!--     
// Ouvre l'image dans une popup  
function ouvrirImage(url, height, width) {  
  window.open(url, '', 'height='+height+', width='+width +',toolbar=no,menubar=no,status=no,resizable=yes');  
}  
//-->  
</script>  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  
</head>  
<body>  
<h1>Ma galerie d'images</h1>  
<?php  
include('config_galerie.php');  
// on récupère le nombre d'image total  
$query = "select count(*) as nb from images_galerie;";  
$result = mysql_query($query) or die("La requête \"$query\" n'a pas pu s'exécuter !");  

$val = mysql_fetch_array($result);  
$nb_images_tot = $val['nb'];  

// S'il n'y a aucune image, ce n'est pas la peine de continuer  
if (!$nb_images_tot) {  
   echo "Il n'y a aucune image de référencée dans la base de données.";  
} else {  
   // on récupère les paramètres passé sur l'url  
   if ($_GET['image'])   
      $image_debut = $_GET['image'];  
   else  
      $image_debut = 0;  
     
   $i = 0; // permet de savoir combien d'images on a mis sur la ligne;  
     
   $query = "select * from images_galerie limit $image_debut, $nb_images_page;";  
     
   $result = mysql_query($query) or die("La requête \"$query\" n'a pas pu s'exécuter !");  
     
?>  
<table width="100%" border="0">  
  <?php   
   while ($val = mysql_fetch_array($result)) {  
     
      if (!($i++%$nb_images_ligne))  echo "<tr>\n";  
      echo "\n";  
?>  
    <td> <a href="javascript:ouvrirImage('<? echo $val['url_image_norm']?>',<? echo $val['nb_hauteur']?>,  
                                                                 <? echo $val['nb_largeur']?>);">   
     <img src="<? echo $val['url_image_mini']; ?>" alt="<? echo $val['lb_commentaire']; ?>" /> </a> </td>    
     <?php  
      if (!($i%$nb_images_ligne)) echo "</tr>\n";  
   }  
     
   if ($i%$nb_images_ligne) echo "</tr>\n";  
?>  
</table>  
<p style="text-align:center;">   
  <?  
// on affiche maintenant la nagivation entre les pages  

   if ($image_debut) {  
     $image_prec = $image_debut - $nb_images_page;  
?>  
  <a href=""><<< Précédentes </a>   
  <?  
   }  
     
   $j = 0;  
     
   while ( $j * $nb_images_page <= $nb_images_tot ) {  
     if ( $j * $nb_images_page == $image_debut  ) {  
       $m = $j+1;  
      echo $m." ";  
      $j++;  
     } else {  
?>  
  <a href=""><? echo $j+1; ?> </a>   
  <?  
        $j++;  
     }  
     
   }  
     
   if ($image_debut + $nb_images_page <= $nb_images_tot) {  
     $image_suiv= $image_debut + $nb_images_page;  
?>  
  <a href="">Suivantes >>></a>   
  <?  
   }  
}  

mysql_close();  
?>


Ici, ce n'est que la derniére partie qui m'intéresse, la navigation entre les pages.