Pagination
Posté : 02 août 2018, 15:46
Bonjour,
J'espère trouver de l'aide ici après m'être arraché les cheveux, je suis débutant et je viens de terminé ma formation en développement web. Actuellement en train de créer un site (site pour une amie) pour valider mon examen, je bloque sur la pagination. Je m'explique. Quand je fais une pagination qui à pour lien http://localhost/vini-blog/pageCandidature.php?page=2, cela fonctionne très bien et je peux indiquer si je veux 4-voir plus de candidatures par page. Mais après je veux pousser le vice pour que dès qu'on clique sur une candidature, j'ai également une pagination en fonction du nombre de commentaire, mais le lien ne passe pas et la suite des commentaires ne s'affiche pas sur la page deux .... voici le rendu du lien de la page deux http://localhost/vini-blog/article.php?id=116?page=2
Pouvez-vous m'aiguiller s'il-vous-plait..je vous envoie le code que j'ai fait (je sais c'est du procédural et en apprentissage, désolé d'avance si cela pique les yeux de certains)
Par avance, merci.
J'espère trouver de l'aide ici après m'être arraché les cheveux, je suis débutant et je viens de terminé ma formation en développement web. Actuellement en train de créer un site (site pour une amie) pour valider mon examen, je bloque sur la pagination. Je m'explique. Quand je fais une pagination qui à pour lien http://localhost/vini-blog/pageCandidature.php?page=2, cela fonctionne très bien et je peux indiquer si je veux 4-voir plus de candidatures par page. Mais après je veux pousser le vice pour que dès qu'on clique sur une candidature, j'ai également une pagination en fonction du nombre de commentaire, mais le lien ne passe pas et la suite des commentaires ne s'affiche pas sur la page deux .... voici le rendu du lien de la page deux http://localhost/vini-blog/article.php?id=116?page=2
Pouvez-vous m'aiguiller s'il-vous-plait..je vous envoie le code que j'ai fait (je sais c'est du procédural et en apprentissage, désolé d'avance si cela pique les yeux de certains)
Par avance, merci.
<?php
require_once('include/layout.php');
$pdo = new PDO('mysql:host=localhost;dbname=vini', 'root', '');
$pdo->exec('SET NAMES UTF8');
if(isset($_GET['id']) && !empty($_GET['id'])) {
$article = $pdo->prepare
(
'SELECT
post.Id,
Title,
Article,
CreationTimestamp,
Pseudo,
Avatar,
Citation
FROM post
INNER JOIN user
ON post.User_Id = user.Id
WHERE post.Id = ?
');
$article->execute(array($_GET['id']));
$posts = $article->fetch(PDO::FETCH_ASSOC);
if($article->rowCount() == 1){
} else
{
header('Location: index.php');
exit();
}
} else
{
header('Location: index.php');
exit();
}
//SYSTEME DE PAGINATION
$commentaireParPage = 2;
$reqCommentaires = $pdo->prepare
(
'SELECT
COUNT(Id) AS total
FROM comment
');
$reqCommentaires->execute();
$data = $reqCommentaires->fetch(PDO::FETCH_ASSOC);
$totalCommentaires = $data['total'];
print_r($totalCommentaires); // 7
if(isset($_GET['page']) && !empty($_GET['page']) && $_GET['page'] > 0 )
{
$_GET['page'] = intval($_GET['page']);
$pageCourante = $_GET['page'];
} else {
$pageCourante = 1;
}
$depart = ($pageCourante-1)*$commentaireParPage;
$pagesTotal = ceil($totalCommentaires/$commentaireParPage);
$query = $pdo->prepare(
'SELECT
comment.Id,
CreationTimeComment,
Comment,
Pseudo,
Citation,
Avatar
FROM
comment
INNER JOIN user ON
comment.User_Id = user.Id
WHERE Post_Id = ?
ORDER BY CreationTimeComment
LIMIT '.$depart.','.$commentaireParPage
);
$query->execute([$_GET['id']]);
$comments = $query->fetchAll(PDO::FETCH_ASSOC);
?>
<main>
<div class="menu-pagination">
<ul class="pagination">
<?php for($i=1; $i<=$pagesTotal; $i++) { ?>
<a href="article.php?id=<?= $posts['Id']?>?page=<?= $i ?>"><li><?php echo $i.' ';?></li></a>
<?php } ?>
</ul>
</div>
<section class="post">
<!--AFFICHAGE DES CANDIDATURES POSTEES-->
<article class="post_article">
<img src="users/avatars/<?php echo $posts['Avatar']?>" width="240px">
<div>
<h2><a><?= $posts['Title'] ?></a></h2>
<p><?= $posts['Article'] ?></p>
<small>
<hr>
<p><q>Rédigé par <?= $posts['Pseudo'] ?> le <?=$posts['CreationTimestamp'] ?></q></p>
<p><cite><?= $posts['Citation'] ?></cite></p>
</small>
</div>
</article>
</section>
<?php foreach($comments as $comment): ?>
<section class="post">
<!--AFFICHAGE DES COMMENTAIRES-->
<article class="post_article">
<img src="users/avatars/<?php echo $comment['Avatar']?>" width="240px">
<div>
<p><?= $comment['Comment'] ?></p>
<small>
<hr>
<p><q>Rédigé par <?= $comment['Pseudo'] ?> le <?= $comment['CreationTimeComment'] ?></q></p>
<p><cite><?= $comment['Citation'] ?></cite></p>
</small>
</div>
</article>
</section>
<?php endforeach; ?>
<div class="menu-pagination">
<ul class="pagination">
<?php for($i=1; $i<=$pagesTotal; $i++) { ?>
<a href="article.php?=<?= $_GET['id']?>?page=?"><li><?php echo $i.' ';?></li></a>
<?php } ?>
</ul>
</div>
<!-- PARTIE INVISIBLE SI L UTILISATEUR N EST PAS INSCRIT COMMENTAIRE ET POST COMMENTAIRE IMPOSSIBLE -->
<?php if(!empty($_SESSION)) { ?>
<form class="generic-form-article" action="addComment.php" method="POST">
<!-- EDITEUR DE TEXTE-->
<textarea id="editor" name="comment_Candidature" class="article-comment"></textarea>
<!-- INFORMATIONS UTILISATEURS CACHES-->
<select name="user">
<option>
<?= htmlspecialchars($_SESSION['pseudo'])?>
</option>
</select>
<select name="id_user">
<option>
<?= intval($_SESSION['id'])?>
</option>
</select>
<select name="post_Id">
<option>
<?= intval($_GET['id'])?>
</option>
</select>
<div class="validate_comment">
<input type="submit" name="validate">
<?php if(isset($_POST['validate'])) {?>
<p>"Veuillez remplir tout les champs"</p>
<?php }?>
<input type ="button" onclick="window.location.replace('')" value="Annuler"></a>
</div>
<?php } ?>
</form>
</main>