Pages :
Bonsoir,

J'ai un petit souci lors de la création de pagination, je n'arrive pas récupérer le nombre de message en fonction du n° de l'id du billet voici le code :


	<section>
			
		<div class="findepage">

			<?php
			
			require "#require/connet_bdd.php"; //Connexion à la base de données

			// Le nombre de messages qui sera affichés par page
				$msgpage = 15;
				
				// On récupère le nombre de message total qui sont dans la base de données * ICI JE N'ARRIVE PAS RECUPERER ID DU BILLET *
				$recupere = $bdd->query('SELECT id_billet FROM commentaires WHERE id_billet = id_billet');
				$msgtotal = $recupere->rowcount();
				
				// 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;
			
			if (isset($_GET['billet']))
			{
				// 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($_GET['billet']));
				$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 pseudo, commentaire, DATE_FORMAT(date_commentaire, \'%d/%m/%Y à %Hh%i \') AS date_commentaire FROM commentaires WHERE id_billet = ? ORDER BY ID DESC LIMIT ' .$pagestart.','.$msgpage);
			$req->execute(array($_GET['billet']));
			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
			}
			}
			
			else
			{
				echo 'Vous essayez d\'atteindre une page qui n\'existe pas...!!!';
			}	
			
			echo '</div>';
				 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>';
				}

			?>
		</div>

	</section>


Et là ma table avec id_billet qui sert pour l'affichage des commentaire en fonction du N° du id_billet.
upload/1522863680-67715-sreen.jpg
Merci à vous.
Modifié par ricem (05 Apr 2018 - 11:41)
salut,

il me semble qu'ici tu ne passes aucune variable, c'est peut être pour ça.

ICI JE N'ARRIVE PAS RECUPERER ID DU BILLET *
				$recupere = $bdd->query('SELECT id_billet FROM commentaires WHERE id_billet = id_billet');
Bonjour,
Je ne peux savoir comment tu lui demande ce résultat,
je te donne donc sur ta table comment je ferais de A à Z pour un id_billet précis
donc je supposes que tu est en PDO Mysql dans un PHP qui reçoit l' id_billet a traiter via un FORM

donc tu récupéres le numéro de billet
puis tu traites !

<php
/* =====login a ta base Mysql === 
puis recuperer l'id =========== */
$LID = (isset($_POST['unID'])) ? $_POST['unID'] : "xx";
if ($LID !="xx")  /* donc il y a bien une valeur dans le POST */
{
  $total=0;
  $requete="SELECT * FROM commentaires WHERE `id_billet` =  :LID";
  $result = $bdd->prepare($requete);
  $result->bindParam(':LID', $LID, PDO::PARAM_INT);   
  $result->execute();
 while ($row = $result->fetch())
  {
   $x= $row['id_billet'];
   $total=$total+1;
  }
  echo "soit ".$total." trouvé pour ".$LID
 }
?>

Modifié par Christele (06 Apr 2018 - 12:00)
Merci à tous pour vos réponses.

Christele, mon id_billet est envoyé par la page forum.php comme ceci :
<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 -->
						<br />
						<p class="signature"> <a href="commentaires.php?billet=<?php echo $donnees['id']; ?>">Voir les commentaires</a></p>
en cliquant sur le lien.
biduletruck, Je vais essayé, faut juste que je comprenne le fonctionnement Smiley langue
Sinon un code comme celui-ci ne devrait pas fonctionné
 
$recupere = $bdd->query('SELECT  id_billet FROM commentaires WHERE id_billet = \'ici la requête de la page envoyé\'');

Par exemple dans un tableau
upload/1523021186-67715-test.jpg
Si je veux sélectionner les fruits à herve, je fait
$reponse = $bdd->query('SELECT nom, fruit FROM fruit WHERE nom=\'herve\'');

C'est pas un peu pareille sauf que là, je veux sélectionné les id_billet envoyé par un get...
Ps: rigolez pas, je débute et je me renseigne Smiley confused
Modifié par ricem (06 Apr 2018 - 15:31)
Dans ton cas peu importe car tu vas juste faire un décompte du nombre de commentaires.

Tu pourrais tout aussi bien faire ton comptage depuis ta requête sql.
Soit dit en passant les COUNT ou SUM sont plus rapide en SQL qu'en PHP.
SELECT count(*) as nbCommentaire FROM commentaires WHERE id_billet = 1



sinon pour ta question (et je resume sans prendre en compte les différentes vérifications et/ou protection)



$LID = (isset($_GET ['billet'])) ? $_GET ['billet'] : "xx";
$recupere = $bdd->query('SELECT  id_billet FROM commentaires WHERE id_billet = ' . $LID );

Modifié par biduletruck (06 Apr 2018 - 16:51)
Merci biduletruck, pour tes réponses, ça fonctionne (à moitié), ça indique bien le nombre de page en fonction du nombre de commentaire que je demande.
exemple, j'ai 8 commentaires, quand j'en demande 4 com/pages il m'indique 2 pages,
quand je demande 3 com/pages il m'indique 3 pages, jusqu'à là ça va.
c'est quand je clique sur la page 2 ou 3, il me met une erreur
upload/1523113082-67715-erreur.jpg

Et voici le code :
// Le nombre de messages qui sera affichés par page
				$msgpage = 6;
				
				// On récupère le nombre de message total qui sont dans la base de données
								
				$LID = (isset($_GET ['billet'])) ? $_GET ['billet'] : "xx";
				$recupere = $bdd->query('SELECT  id_billet FROM commentaires WHERE id_billet = ' . $LID );

				$msgtotal = $recupere->rowcount();

Sinon à quoi correspond le
"xx"

Merci.
salut,

$LID = (isset($_GET ['billet'])) ? $_GET ['billet'] : "xx";


En fait c'est une simple condition mais en écriture ternaire.

 : "xx"

correspond à si faux.
cela revient à faire

if (isset($_GET ['billet']))
{
    $LID = $_GET ['billet'];
}
else
{
    $LID = "xx" //donc une valeur par défaut ou une gestion d’erreur
}


Sinon (comme le dit la doc php Smiley cligne )
rowCount() retourne le nombre de lignes affectées par une requête DELETE, INSERT, ou UPDATE


Exemple #2 Comptage des lignes retournées par une requête SELECT

Pour la plupart des bases de données, PDOStatement::rowCount() ne retourne pas le nombre de lignes affectées par une requête SELECT. À la place, utilisez PDO::query() pour faire une requête SELECT COUNT(*), puis utilisez PDOStatement::fetchColumn() pour récupérer le nombre de lignes retournées. Votre application peut ainsi effectuer la bonne action.



http://php.net/manual/fr/class.pdostatement.php
Merci biduletruck pour ta reponse, mais il me fait encore une erreur, voici l'erreur :
upload/1523194006-67715-ii.jpg
Et le code que j'ai rectifié :
// Le nombre de messages qui sera affichés par page
				$msgpage = 6;
				
				// On récupère le nombre de message total qui sont dans la base de données
								
				$LID = (isset($_GET ['billet'])) ? $_GET ['billet'] : "xx";
				$recupere = $bdd->query('SELECT COUNT(*) id_billet FROM commentaires WHERE id_billet = ' . $LID );
				$msgtotal = $recupere->fetchColumn();

Et d'après ce que j'ai lu plus haut avec COUNT c'est plus rapide ?
Alors 2 choses:

1- dans ton cas le "xx" devrait remplacer par un contrôle d erreur.
Genre si vide -)> il faut un id

2- dans requête sql fait juste

SELECT COUNT(*) FROM commentaires WHERE id_billet 


Id_billet ne sert a rien apres le count sauf a générer une erreur
Merci biduletruck,

j'ai essayé comme ceci :
				
				$LID = (isset($_GET ['billet'])) ? $_GET ['billet'] : "xx";
				$recupere = $bdd->query('SELECT COUNT(*) FROM commentaires WHERE id_billet');
				$msgtotal = $recupere->fetchColumn();

le problème c'est qu'il me remet touts les "id_billet" de la table peut importe le numéro de l'id.
Donc j'ai essayé comme ceci :
$LID = (isset($_GET ['billet'])) ? $_GET ['billet'] : "xx";
				$recupere = $bdd->query('SELECT COUNT(*) FROM commentaires WHERE id_billet = ' . $LID );
				$msgtotal = $recupere->fetchColumn();

Mais le problème persiste quand on clique sur la page 2 ou 3 exactement la même erreur Smiley langue Smiley decu

Edit :
Je vient de voir un problème, j'avais mis une condition mais pas au bonne endroit...
if (isset($_GET['billet']))
			{

Je l'avait mis en dessous de la pagination alors qu'il fallait la mettre avant, mais j'ai une autre erreur je regarde et vous dit ça
Ps : vous pouvez regarder dans le 1er commentaire dans le code pour comprendre de quoi je parle
Modifié par ricem (09 Apr 2018 - 09:51)
Essai avec ça


<section>

    <div class="findepage">

        <?php

        require "#require/connet_bdd.php"; //Connexion à la base de données

        // Le nombre de messages qui sera affichés par page
        $nombreMessagesAffiches = 6;

        // on récupère la page demandee, si vide on prend la page N°1
        $pageDemandee = (isset($_GET ['billet']) ? $_GET ['billet'] : 1);

        // on récupere le nombre de commentaires depuis l'id du billet envoyé
        $rechercheIdBillet = (isset($_GET ['billet'])) ? $_GET ['billet'] : 1; //Si billet existe et si vide alors on prend le billet ayant l'ID 1

        // On récupère le nombre de message total qui sont dans la base de données
        $recupereCommentairesDepuisId = $bdd->query('SELECT COUNT(*) FROM commentaires WHERE id_billet = ' . $rechercheIdBillet );
        $nombreCommentaire = $recupereCommentairesDepuisId->fetchColumn();

        // Nombre de page total est égal à (nombre de message total divisé par le nombre de message par page)
        $nombrePageAffichees = ceil($nombreCommentaire/$nombreMessagesAffiches); //ceil arrondie au chiffre supérieur

        if( ($pageDemandee > 0) && ($pageDemandee<= $nombrePageAffichees) ) {
            // page de départ qui servira pour la requête "desc & limit"
            $limitePage = ($pageDemandee - 1) * $nombreCommentaire;

            // 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($_GET['billet']));
            $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 // 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($_GET['billet'], $limitePage, $nombreMessagesAffiches));

            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 -->

                <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
            }
        }
        else
        {
            echo 'Vous essayez d\'atteindre une page qui n\'existe pas...!!!';
        }

        echo '</div>';
        echo '<div id="pagination">'; //Pour l'affichage, on centre la liste

        if ($page > 1)
        {
            echo '<a class="lien" href="?page=' . ($pageDemandee - 1) . '"> << </a>';
        }

        for ($i = 1; $i <= $nombrePageAffichees; $i++)
        {
            if ($i == $pageDemandee)
            {
                echo '<span class="sanslien">' .$i. '</span> ';
            }

            else
            {
                echo ' <a  class="lien" href="?page=' . $i . '"> ' . $i . '</a>';
            }
        }

        if ($pageDemandee < $nombrePageAffichees)
        {
            echo '<a class="lien" href="?page=' . ($pageDemandee + 1) . '"> >> </a>';
        }
        ?>
    </div>

</section>

Merci biduletruck,

J'ai testé et corrigé ci-dessous "le $page => en $pagedemandée"
  if ($page > 1)
        {
            echo '<a class="lien" href="?page=' . ($pageDemandee - 1) . '"> << </a>';
        }

        for ($i = 1; $i <= $nombrePageAffichees; $i++)
        {
            if ($i == $pageDemandee)
            {
                echo '<span class="sanslien">' .$i. '</span> ';
            }

            else
            {
                echo ' <a  class="lien" href="?page=' . $i . '"> ' . $i . '</a>';
            }
        }

        if ($pageDemandee < $nombrePageAffichees)
        {
            echo '<a class="lien" href="?page=' . ($pageDemandee + 1) . '"> >> </a>';
        }

Heu, là il affiche plus les billets Smiley ohwell
Je regarde de mon coté voir si je d'autre truc Smiley confus
Sinon, j'avais presque réussi sur l'autre code, juste qu'il voulais pas afficher la 2ème page..
je te le met au cas où..
	<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 = 6;
				
				// On récupère le nombre de message total qui sont dans la base de données
								
				$LID = (isset($_GET ['billet'])) ? $_GET ['billet'] : "xx";
				$recupere = $bdd->query('SELECT COUNT(*) FROM commentaires WHERE id_billet = ' . $LID );
				$msgtotal = $recupere->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($_GET['billet']));
				$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

			require "#require/bcode_smiley.php"; //tout est dans le nom 

			// 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 ' .$pagestart.','.$msgpage);
			$req->execute(array($_GET['billet']));
			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 (texte(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>
Greg_Lumiere a écrit :
heu... rien en fait

Pas grave ^^

Sinon biduletruck, j'ai vu qu'y avais pas de
	$req->closeCursor(); 
normale "ou pas" ??
Je n'ai jamais eu de problème avec
de plus la doc est précise dessus

Lorsque la connexion à la base de données a réussi, une instance de la classe PDO est retournée à votre script. La connexion est active tant que l'objet PDO l'est. Pour clore la connexion, vous devez détruire l'objet en vous assurant que toutes ses références sont effacées. Vous pouvez faire cela en assignant NULL à la variable gérant l'objet. Si vous ne le faites pas explicitement, PHP fermera automatiquement la connexion lorsque le script arrivera à la fin.


http://php.net/manual/fr/pdo.connections.php

sinon je vais voir avec ton code à toi.

mais par ici lorsque tu utilises une requête préparée il faut allez jusqu'au bout

// 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 ' .$pagestart.','.$msgpage);
			$req->execute(array($_GET['billet']));
			while ($donnees = $req->fetch())


et faire :


// 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($_GET['billet'], $pagestart, $msgpage));
			while ($donnees = $req->fetch())
Merci biduletruck,
Oui oups j'avais pas vu que c'était en requête prépare, j'ai donc corrigé comme indiqué, mais là il ne m'affiche plus les commentaire, par contre j'ai bien le nombre de page qui correspond à la demande de tant de message par page. Smiley ohwell
Pages :