Après avoir réussi non sans mal le TP sur le blog du cours de MR nebra Php my sql j'ai essayé de m'attaquer aux exercices supplémentaires et notamment celui sur la pagination.
Seulement voilà après 5 dolipranes, plusieurs copiés collés, et de nombreuses relectures je ne comprend toujours pas mon erreur.
Je voudrais que le site me renvoie 3 billets par page, cependant il me renvoie une page blanche;
Voici mon code.
<?php
include 'acces_bdd_test.php';
// on accède à la base de données
$reponse = $bdd->query('SELECT COUNT(*) AS nombre_billets FROM billets');
$lecture_bdd = $reponse->fetch();
$reponse ->closeCursor();
$reponse = NULL;
//On aller chercher le nombre de pages pour la pagination
$article_par_page = 3;
$nombre_billets = $lecture_bdd['nombre_billets'];
$nombre_de_page = ceil($nombre_billets / $article_par_page);
// on va maintenant faire les liens et la boucle
?>
<div class="pagination">
<?php
echo 'page : ';
for($i=1;$i<=$nombre_de_page;$i++)
{
echo '<a href="monblog.php?page='.$i .'">'. $i. '</a>'.' ';
}
?>
</div>
<?php
// Nous allons afficher les messages
if (isset($_GET['page']) AND !empty($_GET['page'])) // si la variable existe et qu'elle n'est pas vide
{
if ($_GET['page'] < $nombre_de_page + 1)
{
$page = (int) htmlspecialchars($_GET['page']);
}
else
{
header('Location:monblog.php');
}
}
else
{
$page = 1; // sinon page par defaut = 1
}
// Détermination de la limite par page.
$limite_par_page = ($i-1) * $article_par_page;
//appel base de données
$req = $bdd->query('SELECT id,titre,contenu,date_format(date_creation, \'%d%m%Y à %H%i\') AS dateformate FROM billets ORDER BY id DESC LIMIT ' . $limite_par_page . ',' . $article_par_page) or die(print_r($bdd->errorInfo()));
while ($donnees = $req->fetch())
{
$id = (int) $donnees['id']; ?>
<div class="news">
<h3>
<?=htmlspecialchars($donnees['titre'])?></br>
le <?=htmlspecialchars($donnees['dateformat'])?>
</h3>
<p>
<?=nl2br(htmlspecialchars($donnees['contenu']))?>
</p>
</div>
<a href="commentaires.php?billet=<?=$id?>">Commentaires</a>
<?php
}
?>
tu avais raison le limite par page était incorrect, j'ai remplacé le $i qui était incrémenté par la première boucle par page, Rien ne s'affichait puisque la limite commençait plus haut que le nombre de billets de blog : c'est sur ça pouvait pas s'afficher...
Merci encore!
La pagination versus ma santé mentale
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.