CREATE TABLE IF NOT EXISTS `galerie` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titre_galerie` varchar(300) NOT NULL,
`img_principale` varchar(300) NOT NULL,
`vignettes` text NOT NULL,
`commentaire` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `titre_galerie` (`titre_galerie`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
J'ai donc créé une table avec les champs : id (clé primaire), titre_galerie(clé unique pour éviter des galeries avec les mêmes noms), img_principale (qui correspond à l'image grand format de la galerie), vignettes (qui contient toutes les vignettes de cette galerie), commentaire (le texte de description de la galerie).Code : Tout sélectionner
image1.jpg|image2.jpg|image3.jpg|image4.jpg|image5.jpg/* mise en place du nombre d'affichage de galeries par page */
$nb_affiche = 5; //Nombre de galeries que l'on veut par page
//On va afficher la/les galeries selon la page où l'on ce trouve
if (isset($_GET['page']) && is_numeric($_GET['page']) && $_GET['page']>0)
{
//$start nous sert pour savoir où commence l'affichage des galeries selon la page où l'on est
$start = $_GET['page'] * $nb_affiche - $nb_affiche;
//On récupère la page sur laquelle on est, nécessaire lors de la pagination
$page = $_GET['page']
}
else
{
$start = 0;
$page = 1;
}
/* ========================================================= */
Ensuite on va mettre en place la requête SQL qui ira chercher les informations à afficher dans la page
<?php
//On prepare la requete SQL
$req = $bdd->prepare("SELECT * FROM galerie ORDER BY id LIMIT :start,:nb_affiche");
$req->bindValue(':start',$start,PDO::PARAM_INT);
$req->bindValue(':nb_affiche',$nb_affiche,PDO::PARAM_INT);
$req->execute();
while ($donnees = $req->fetch())
{
?>
<div class="galerie">
<h1><?php echo $donnees['titre_galerie']; ?></h1>
<img src="galerie/<?php echo $donnees['img_principale']; ?>" alt="" />
<div class="vignettes">
<?php
/*On affiche toutes les vignettes pour cette galerie
On crée un tableau des vignettes grâce au séparateur barre | */
$tableau_vignettes = explode("|",trim($donnees['vignettes']));
for ($i = 0; $i < count($tableau_vignettes); $i++)
{
//On affiche chaque vignette dans une balise img
?>
<img src="galerie/<?php echo $tableau_vignettes[$i]; ?>" alt="" />
<?php
}
?>
</div>
<p>
<?php echo $donnees['commentaire']; ?>
</p>
</div>
<?php
}
$req->closeCursor();
?>
<?php
//On met en place la pagination
$req = $bdd->prepare("SELECT COUNT(*) AS nb_galerie FROM galerie");
$req->execute();
$nb_galerie = $req->fetch();
$nb_galerie = $nb_galerie['nb_galerie']; //On associe le nombre de galeries
$nb_pages = ceil($nb_galerie / $nb_affiche); //On compte le nombre de pages par rapport au nombre de galeries que l'on veut par page
?>
<p class="pagination">[ Page :
<?php
for ($i=1;$i<=$nb_pages;$i++)
{
if ($i == $page )
{
?>
<span><?php echo $i; ?></span> -
<?php
}
else
{
?>
<a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a> -
<?php
}
}
?>
]</p>
<?php
$req->closeCursor();
?>