Faire un tableau pour galerie avec pagination

Résolu/Fermé
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011 - 17 mars 2011 à 14:27
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 - 17 mars 2011 à 16:25
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
A voir également:

22 réponses

prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
17 mars 2011 à 14:41
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
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011
17 mars 2011 à 14:49
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
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011
17 mars 2011 à 14:53
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
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
17 mars 2011 à 14:55
Comment ça "que sa englobe image par image" ??

Tu parles du cadre autour des images ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011
17 mars 2011 à 14:57
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
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
17 mars 2011 à 15:00
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
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011
17 mars 2011 à 15:07
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
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
17 mars 2011 à 15:11
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
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011
17 mars 2011 à 15:18
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
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
17 mars 2011 à 15:24
... ok mais qu'est ce qui ne va pas ? des erreurs php ? quel comportement ne fonctionne pas ?

Merci de détailler....
0
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
17 mars 2011 à 15:26
Y a déja une erreur ici:

// Affichage des images
echo '<table border="1"><tr>';
0
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011
17 mars 2011 à 15:28
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
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
17 mars 2011 à 15:36
$max_images est bien le nombre d'images par lignes hein ?
0
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011
Modifié par koko29 le 17/03/2011 à 15:44
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
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
17 mars 2011 à 15:44
if($break == $max_images){

remplace $max_images par le nombre d'images par lignes et regarde si ça fonctionne
0
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011
Modifié par koko29 le 17/03/2011 à 15:52
je remplace $max_images par 8 ?

if($break = 8) comme cela

si c'est comme sa alors sa me met tout à la vertical
0
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
17 mars 2011 à 15:50
if($break == 8)
0
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011
Modifié par koko29 le 17/03/2011 à 15:55
ok sa marche en ligne de 9 au lieu de 8 en revanche

peut être à cause du image par page ?
0
koko29 Messages postés 19 Date d'inscription mardi 15 mars 2011 Statut Membre Dernière intervention 24 octobre 2011
17 mars 2011 à 16:01
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
prosthetiks Messages postés 1189 Date d'inscription dimanche 7 octobre 2007 Statut Membre Dernière intervention 12 juin 2020 431
17 mars 2011 à 16:14
echo '<tr></tr>' ;
$break=0;
}


Changer en $break = 1;
0