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 :
Et là ma table avec id_billet qui sert pour l'affichage des commentaire en fonction du N° du id_billet.
Merci à vous.
Modifié par ricem (05 Apr 2018 - 11:41)
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.
Merci à vous.
Modifié par ricem (05 Apr 2018 - 11:41)