Faire un tableau pour galerie avec pagination

Résolu
koko29 Messages postés 19 Statut Membre -  
prosthetiks Messages postés 1309 Statut Membre -
Bonjour,

<?php
$max_images = 5; // Nombre d'images à afficher
$image_path = 'images/'; // Dossier d'images
$thumb_path = 'thumbs/'; // Dossier des miniatures
$list_ext = array('jpeg', 'jpg', 'png','gif'); // Liste des extensions autorisées

$folder = opendir($image_path);
while($file = readdir($folder)){
$ext = explode('.', $file);
$ext = strtolower($ext[count($ext) - 1]);
if (in_array($ext,$list_ext)){
$list_images[] = $image_path . $file;
$list_thumbs[] = $thumb_path . $file;
}
}

$current_page = (!isset($_GET['page']) || empty($_GET['page'])) ? 1 : $_GET['page'];

$nb_pages = ceil(count($list_images) / $max_images);

// Affichage des images
for($i = ($current_page - 1) * $max_images; $i < ($current_page - 1) * $max_images + $max_images; $i++) {
if($i < count($list_images)) {
if(file_exists($list_images[$i])) {
echo '<a href="'.$list_images[$i].'"><img src="'.$list_thumbs[$i].'"/></a>';
}
}
}

// Affichage du pager
for ($i = 1 ; $i <= $nb_pages ; $i++) {
echo '<a href="'.$_SERVER['PHP_SELF'].'?page=' . $i . '">' . $i . '</a> ';
}
?>

comment faire une sorte de tableaux dans le même genre que celui ci :

http://www.tonnerre-pics-up.fr/galerie.php

merci de par avance car j'arrive uniquement à faire soit du horizontale soit du verticale, mais pas de tableau du genre 6 image par ligne

cordialement

22 réponses

  • 1
  • 2
  1. prosthetiks Messages postés 1309 Statut Membre 431
     
    Hello,

    un trux dans le genre ?

    <?php
    	$nbCol = 5;
    	$break = 0;
    	$url = 'http://www.xssed.com/files/Image/News/google-girl.jpg';
    	$html = '<table><tr>';
    	for($i = 0; $i < 50; $i++){
    		$html .= "<td><img width=\"50\" height=\"50\" src=\"$url\"</td>";
    		if($break == $nbCol){
    			$html.='<tr></tr>';
    			$break=0;
    		}else{
    			$break++;
    		}
    	}
    	$html .= '</tr></table>';
    	echo $html;
    ?>
    
    0
  2. koko29 Messages postés 19 Statut Membre
     
    bonjour et merci pour la réponse

    comment le reproduire dans mon code ? je ne suis pas encore assez caler en php sa va pas posez problème car vu que je veux affiche une certain nombre d'images dans la page d'où le

    $max_images = 26 par exemple
    0
  3. koko29 Messages postés 19 Statut Membre
     
    sinon oui dans se genre là, mais j'aimerais autant que sa englobe image par image comme sa cette exemple http://www.tonnerre-pics-up.fr/galerie.php
    0
  4. prosthetiks Messages postés 1309 Statut Membre 431
     
    Comment ça "que sa englobe image par image" ??

    Tu parles du cadre autour des images ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. koko29 Messages postés 19 Statut Membre
     
    oui voila je rajouterais un border=1

    le soucis et qu'avec mon code que j'ai donner en haut soit je fait du verticale soit de horizontal de me 26 images à afficher

    mais dans un tableau normal je n'y arrive pas !
    0
  7. prosthetiks Messages postés 1309 Statut Membre 431
     
    Au passage, merci de coller ton code entre les balises prévues à cet effet afin d'en garder l'indentation ;)

    <?php
    $max_images = 5; // Nombre d'images à afficher
    $break = 0;
    $image_path = 'images/'; // Dossier d'images
    $thumb_path = 'thumbs/'; // Dossier des miniatures
    $list_ext = array('jpeg', 'jpg', 'png','gif'); // Liste des extensions autorisées
    
    
    $folder = opendir($image_path);
    while($file = readdir($folder)){
    $ext = explode('.', $file);
    $ext = strtolower($ext[count($ext) - 1]);
    if (in_array($ext,$list_ext)){
    $list_images[] = $image_path . $file;
    $list_thumbs[] = $thumb_path . $file;
    }
    }
    
    $current_page = (!isset($_GET['page']) || empty($_GET['page'])) ? 1 : $_GET['page'];
    
    $nb_pages = ceil(count($list_images) / $max_images);
    
    // Affichage des images
    for($i = ($current_page - 1) * $max_images; $i < ($current_page - 1) * $max_images + $max_images; $i++) {
    if($i < count($list_images)) {
    if(file_exists($list_images[$i])) {
    if($break == $max_images){
    echo '<br />';
    $break=0;
    }else{
    $break++;
    }
    echo '<a href="'.$list_images[$i].'"><img src="'.$list_thumbs[$i].'"/></a>';
    }
    }
    }
    
    // Affichage du pager
    for ($i = 1 ; $i <= $nb_pages ; $i++) {
    echo '<a href="'.$_SERVER['PHP_SELF'].'?page=' . $i . '">' . $i . '</a> ';
    }
    ?> 
    
    0
  8. koko29 Messages postés 19 Statut Membre
     
    ok merci et désoler pour l'indentation

    ok sa fait un tableau, mais je n'arrive pas à savoir ou mettre le <table border="1"><td></td></table>
    0
  9. prosthetiks Messages postés 1309 Statut Membre 431
     
    j'édite la partie de l'affichage des images, le reste est pareil;

    // Affichage des images
    $html = '<table><tr>';
    for($i = ($current_page - 1) * $max_images; $i < ($current_page - 1) * $max_images + $max_images; $i++) {
    	if($i < count($list_images)) {
    		if(file_exists($list_images[$i])) {
    			if($break == $max_images){
    				$html.='<tr></tr>';
    				$break=0;
    			}else{
    				$break++;
    			}
    			echo '<td><a href="'.$list_images[$i].'"><img src="'.$list_thumbs[$i].'"/></a></td>';
    		}
    	}
    }
    $html .= '</tr></table>';
    echo $html;
    
    // Affichage du pager
    for ($i = 1 ; $i <= $nb_pages ; $i++) {
    echo '<a href="'.$_SERVER['PHP_SELF'].'?page=' . $i . '">' . $i . '</a> ';
    }
    ?> 
    
    
    0
  10. koko29 Messages postés 19 Statut Membre
     
    je n'y arrive pas

    <?php
        $max_images = 25; // Nombre d'images à afficher
        $break = 0;
        $image_path = 'images/'; // Dossier d'images
        $thumb_path = 'thumbs/'; // Dossier des miniatures
        $list_ext = array('jpeg', 'jpg', 'png','gif', 'bmp', 'JPEG', 'JPG', 'PNG', 'GIF','BMP'); // Liste des extensions autorisées
    
    
        $folder = opendir($image_path);
        while($file = readdir($folder)){
            $ext = explode('.', $file);
            $ext = strtolower($ext[count($ext) - 1]);
           if (in_array($ext,$list_ext)){
                $list_images[] = $image_path . $file;
                $list_thumbs[] = $thumb_path . $file;
            }
        }
    
        $current_page = (!isset($_GET['page']) || empty($_GET['page'])) ? 1 : $_GET['page'];
    
        $nb_pages = ceil(count($list_images) / $max_images);
    
        // Affichage des images
    	'<table border="1"><tr>';
        for($i = ($current_page - 1) * $max_images; $i < ($current_page - 1) * $max_images + $max_images; $i++) {
            if($i < count($list_images)) {
                if(file_exists($list_images[$i])) {
                    if($break == $max_images){
                    echo '<br /><tr></tr>' ;
                    $break=0;
                    }else{
                    $break++;
                     }
                          echo '<th><a href="'.$list_images[$i].'"><img src="'.$list_thumbs[$i].'"/></th></a>';
                }
            }
        }
        echo'</tr></table>';
    	
        // Affichage du pager
        for ($i = 1 ; $i <= $nb_pages ; $i++) {
            echo '<a href="'.$_SERVER['PHP_SELF'].'?page=' . $i . '">' . $i . '</a> ';
        }
    ?>
    0
  11. prosthetiks Messages postés 1309 Statut Membre 431
     
    ... ok mais qu'est ce qui ne va pas ? des erreurs php ? quel comportement ne fonctionne pas ?

    Merci de détailler....
    0
  12. prosthetiks Messages postés 1309 Statut Membre 431
     
    Y a déja une erreur ici:

    // Affichage des images
    echo '<table border="1"><tr>';
    0
  13. koko29 Messages postés 19 Statut Membre
     
    oui j'avais oublier le echo, mais je l'ai vu et rajouter tout à l'heure,

    en faite sa reste si la même ligne
    0
  14. prosthetiks Messages postés 1309 Statut Membre 431
     
    $max_images est bien le nombre d'images par lignes hein ?
    0
  15. koko29 Messages postés 19 Statut Membre
     
    non c'est cela que je disais en haut c'est le nombre d'image par page !

    c'est pour sa que je trouver bizarre là, même en modifiant la valeur $break je faisait sur 2 ligne max et la 1er ligne était la plus long,

    edit: je croyais que la variable $break faisait le nombres d'image par ligne
    0
  16. prosthetiks Messages postés 1309 Statut Membre 431
     
    if($break == $max_images){

    remplace $max_images par le nombre d'images par lignes et regarde si ça fonctionne
    0
  17. koko29 Messages postés 19 Statut Membre
     
    je remplace $max_images par 8 ?

    if($break = 8) comme cela

    si c'est comme sa alors sa me met tout à la vertical
    0
  18. prosthetiks Messages postés 1309 Statut Membre 431
     
    if($break == 8)
    0
  19. koko29 Messages postés 19 Statut Membre
     
    ok sa marche en ligne de 9 au lieu de 8 en revanche

    peut être à cause du image par page ?
    0
  20. koko29 Messages postés 19 Statut Membre
     
    voila la page pour que tu puisse voir quand même

    http://www.tonnerre-pics-up.fr/galerie3.php?page=1

    et je te donne le code:

    <?php
        $max_images = 36; // Nombre d'images à afficher
        $break = 8;
        $image_path = 'images/'; // Dossier d'images
        $thumb_path = 'thumbs/'; // Dossier des miniatures
        $list_ext = array('jpeg', 'jpg', 'png','gif', 'bmp', 'JPEG', 'JPG', 'PNG', 'GIF','BMP'); // Liste des extensions autorisées
    
    
        $folder = opendir($image_path);
        while($file = readdir($folder)){
            $ext = explode('.', $file);
            $ext = strtolower($ext[count($ext) - 1]);
           if (in_array($ext,$list_ext)){
                $list_images[] = $image_path . $file;
                $list_thumbs[] = $thumb_path . $file;
            }
        }
    
        $current_page = (!isset($_GET['page']) || empty($_GET['page'])) ? 1 : $_GET['page'];
    
        $nb_pages = ceil(count($list_images) / $max_images);
    
        // Affichage des images
    	echo'<table border="1"><tr>';
        for($i = ($current_page - 1) * $max_images; $i < ($current_page - 1) * $max_images + $max_images; $i++) {
            if($i < count($list_images)) {
                if(file_exists($list_images[$i])) {
                    if($break == 8){
                    echo '<tr></tr>' ;
                        $break=0;
                    }
    				else{
                    $break++;
                    }
                          echo '<th><a href="'.$list_images[$i].'"><img src="'.$list_thumbs[$i].'"/></th></a>';
                }
            }
        }
    	 
    
        echo'</tr></table>'; {
        }
    	
        // Affichage du pager
        for ($i = 1 ; $i <= $nb_pages ; $i++) {
            echo '<a href="'.$_SERVER['PHP_SELF'].'?page=' . $i . '">' . $i . '</a> ';
        }
    ?> 
    0
  21. prosthetiks Messages postés 1309 Statut Membre 431
     
    echo '<tr></tr>' ;
    $break=0;
    }

    Changer en $break = 1;
    0
  • 1
  • 2