[RESOLU] Pagination

Petit nouveau ! | 5 Messages

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


Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

05 août 2018, 23:02

Bonjour,

Pour passer plusieurs paramètres en GET (càd dans l'url), il faut les concaténer avec le symbole &

Par exemple : page.php?var1=valeur1&var2=valeur2&var3=valeur3
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

20 août 2018, 13:48

Merci beaucoup pour la réponse (dsl pour ma réponse tardive ^^'). Je vais étudier cela !
Cordialement,

Petit nouveau ! | 5 Messages

20 août 2018, 17:34

Encore merci ! :)