Bonjour,

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:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
// Récupération des commentaires
      $req = $bdd->prepare('SELECT pseudo, commentaire, DATE_FORMAT(date_commentaire, \'%d/%m/%Y à %Hh%i \') AS date_commentaire FROM commentaires WHERE id_billet = ? ORDER BY ID ');
      $req->execute(array($LID));
      while ($donnees = $req->fetch())
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:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
// Récupération des commentaires
      $req = $bdd->prepare('SELECT 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())
Et au cas où le code compet :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
 
<section>
    <div class="findepage">
 
      <?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>

Je sais que mon code n'est pas joli, mais je débute et j'essaie de faire au mieux.
Merci.