Pagination
Posté : 30 nov. 2011, 00:23
Bonjour a tous
J'ai ajouté un système de pagination a une page php, cette page fonctionne correctement sauf que il ne m'affiche pas les pages ce qui est assez contraignant surtout si l'utilisateur doit ajouter &page=2 a chaque fois ^^
J'ai ajouté un système de pagination a une page php, cette page fonctionne correctement sauf que il ne m'affiche pas les pages ce qui est assez contraignant surtout si l'utilisateur doit ajouter &page=2 a chaque fois ^^
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=cyclisme_vienne', 'root', '', $pdo_options);
$nombreDeMessagesParPage = 5;
$ret = $bdd->query('SELECT COUNT(*) AS nb FROM article WHERE DATE_FORMAT(date_creation, "%M")');
$databis = $ret->fetch();
$totalDesMessages = $databis['nb'];
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
echo 'Page : ';
{
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="post_mois.php?mois=' . $_GET['mois'] . '&page=' . $i . '">' . $i . '</a> ';
}
}
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
</p>
<?php
if (isset($_GET['page']))
{
$page = intval($_GET['page']);
}
else
{
$page = 1;
}
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$bdd->query('SET lc_time_names="fr_FR"');
$req = $bdd->prepare('SELECT titre, contenu, DATE_FORMAT(date_creation, "%d/%m/%Y") AS date_creation_fr FROM article WHERE DATE_FORMAT(date_creation, "%M") = ? ORDER BY date_creation LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
$req->execute(array($_GET['mois']));
if (empty($_GET['mois']))
echo 'Veuillez selectionner un mois';
?>
<h1><?php echo $_GET['mois'];?></h1>
<?php while($donnees = $req->fetch())
{
?>
<div class="post">
<h3><?php echo htmlspecialchars($donnees['titre']); ?></h3>
Le <?php echo $donnees['date_creation_fr']; ?>
<p>
<?php
echo nl2br(htmlspecialchars($donnees['contenu']));
}
$req->closeCursor();
?>