Vous n'êtes pas identifié(e).
Bonsoir,
J'ai un petit souci lors de la création de pagination, je n'arrive pas afficher les message demandés, le problème est quand je je met les limites dans mon code.
Là ça s'affiche, mais pas le nombre demandé exemple j'ai 9 commentaires dans ce billet il m'affiche les 9, je vous mets le code:
et quand je met ce même code avec les LIMIT, il m'affiche plus rien, sinon coté pagination tous fonctionne correctement si je lui demande 3 com/page, il m'affiche 3 pages, 3*3=9 commentaire que j'ai je vous mets le code:
Et au cas où le code compet :
<?php
require "#require/connet_bdd.php"; //Connexion à la base de données
if (isset($_GET['billet']))
{
// Le nombre de messages qui sera affichés par page
$msgpage = 4;
// On récupère le nombre de message total qui sont dans la base de données
if (isset($_GET ['billet']))
{
$LID = $_GET ['billet'];
}
else
{
$LID = "xx";
}
$req = $bdd->query('SELECT COUNT(*) FROM commentaires WHERE id_billet = ' . $LID );
$msgtotal = $req->fetchColumn();
// Nombre de page total est égal à (nombre de message total divisé par le nombre de message par page)
$nbrpage = ceil($msgtotal/$msgpage); //ceil arrondie au chiffre supérieur
// Si aucune page n'est choisie alors la page par défaut est la première
if(isset($_GET['page']) AND !empty($_GET['page']) AND $_GET['page'] >0 AND $_GET['page'] <= $nbrpage)
{
$_GET['page'] = intval($_GET['page']);
$page = $_GET['page'];
}
else
{
$page = 1;
}
// page de départ qui servira pour la requête "desc & limit"
$pagestart = ($page-1)*$msgpage;
// Récupération du billet
$req = $bdd->prepare('SELECT id, titre, contenu, DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh%i \') AS date_creation FROM billet WHERE id = ?');
$req->execute(array($LID));
$donnees = $req->fetch();
{
?>
<!-- Affichage du billet -->
<div class="insides">
<div class="block_titre"> <!-- On affiche le titre et la date de création du billet -->
<?php echo '<span class="titre_forum">' . htmlspecialchars($donnees['titre']) . '</span> <p class="date_forum"> Posté le ' . $donnees['date_creation'] . '</p> ' ; ?>
</div>
<p class="contenu_forum">
<?php echo nl2br (htmlspecialchars($donnees['contenu'])) ; ?> <!-- On affiche le contenu du billet -->
</p>
</div>
<?php
}
$req->closeCursor(); // Important : on libère le curseur pour la prochaine requête
// Récupération des commentaires
$req = $bdd->prepare('SELECT id_billet, pseudo, commentaire, DATE_FORMAT(date_commentaire, \'%d/%m/%Y à %Hh%i \') AS date_commentaire FROM commentaires WHERE id_billet = ? ORDER BY ID DESC LIMIT ?, ? ');
$req->execute(array($LID, $pagestart, $msgpage));
while ($donnees = $req->fetch())
{
?>
<!-- Affichage des commentaires -->
<div class="commentaire">
<p class="line"> Posté le <?php echo $donnees['date_commentaire']; ?> par <b><?php echo htmlspecialchars($donnees['pseudo']); ?></b>.<br/>
<span style="color: blue"><?php echo nl2br(htmlspecialchars($donnees['commentaire'])); ?> </span> </p>
</div>
<!-- Fin de la boucle des commentaires -->
<?php
}
$req->closeCursor();
{
?>
<form class="sujet" action="commentaire_traitement.php" method="post">
<input class="form" type="text" name="pseudo" id="pseudo" placeholder="Votre pseudo" title="Les caractères spéciaux ne sont pas autorisé, merci" />
<input type="submit" class="form2" style="" value="Envoyer" /><br/>
<textarea class="form" name="commentaire" placeholder="Éditer le commentaire ici, vous pouvez étirer le bloc verticalement en vous plaçant sur le coin en bas à droite." ></textarea>
<input type="hidden" name="id_billet" value="<?php echo $_GET['billet']; ?>" />
</form>
<span class="line"><i>* Vous devez remplir tout les champs, votre pseudo ne doit pas comporter de caractères spéciaux, ni d'espace, de même le pseudo doit contenir entre 3 et 12 caractères.
Si ceci n'est pas respecté, les données ne seront pas envoyé.</i></span>
<?php
}
echo '</div>'; // fermeture de "findepage"
echo '<div id="pagination">'; //Pour l'affichage, on centre la liste
if ($page > 1)
{
echo '<a class="lien" href="?page=' . ($page - 1) . '"> << </a>';
}
for ($i = 1; $i <= $nbrpage; $i++)
{
if ($i == $page)
{
echo '<span class="sanslien">' .$i. '</span> ';
}
else
{
echo ' <a class="lien" href="?page=' . $i . '"> ' . $i . '</a>';
}
}
if ($page < $nbrpage)
{
echo '<a class="lien" href="?page=' . ($page + 1) . '"> >> </a>';
}
}
else
{
echo 'Vous essayez d\'atteindre une page qui n\'existe pas...!!!';
}
echo '</div>'; // fermeture de "pagination"
?>
</section>
Merci.
Dernière modification par ricem (14-04-2018 22:07:16)
Hors ligne
Salut
C'est quoi la valeur de $pagestart et $msgpage ??
c'est $pasgeend qu'il faudrait
a++
Hors ligne
Heu, mouais, la variable
Le nom à rien à voir, puisque c'est moi qui la créer, on lui donne le nom que l'on veut ?? qu'elle s’appelle pierre ou cailloux ce qui compte c'est ce qu'elle fait non ??
Hors ligne