problème de pagination

Eléphant du PHP | 330 Messages

16 juil. 2021, 10:47

bonjour a tous

j ai un système de pagination que je souhaite améliorer
avec des menus

pour l instant par défaut lorsque on arrive sur ma page on voit toutes les journées des pêcheurs
j ai donc réaliser une option en plus pour que le pêcheur connecte ne puisse voir que ses propres journées

j ai donc 3 parties a mon code

la première partie
le pêcheur peux afficher toutes les journées de tout le monde
la deuxième partie
il e peux afficher que ses journée de pêche
la troisième est celle par défaut
ou toutes les journées de pêches sont affichées

les 3 volets fonctionnent bien

lorsque le pêcheur choisit ses journées de pêche il arrive bien dans le morceau de code le concernant
mais lorsqu il navigue dans sa pagination il est redirige dans la partie par défaut
je ne vois pas trop ou est l erreur

merci de l aide

Code : Tout sélectionner

<!-- le pecheur selectionne son choix --> <p> <a href="testjourneepeche.php?tes-journees=tes-journnees">tes journees </a> <br> <a href="testjourneepeche.php?tous=tous">les journees de tout les pecheurs </a> </p> <hr/> <?php //le pecheur a choisi d afficher ses journees if($_GET['tes-journees']=="tes-journnees"){ echo "<p>tes journees:</p>"; // On détermine sur quelle page on se trouve if(isset($_GET['pages']) && !empty($_GET['pages'])){ $currentPages = (int) strip_tags($_GET['pages']); }else{ $currentPages = 1; } // On se connecte à là base de données include('../base.php'); // On détermine le nombre total d'employee $sql = 'SELECT COUNT(*) AS nb_employee1 FROM `pecheurs_perle`;'; // On prépare la requête $query = $bdd->prepare($sql); // On exécute $query->execute(); // On récupère le nombre d'employee $result = $query->fetch(); $nbemployee1 = (int) $result['nb_employee1']; // On détermine le nombre d'employee par page $parPages = 8; // On calcule le nombre de pages total $pagess = ceil($nbemployee1 / $parPages); // Calcul du 1er donnees de la page $premiers = ($currentPages * $parPages) - $parPages; $sql = 'SELECT * FROM `pecheurs_perle` WHERE pseudo = "'.$getpseudo.'" ORDER BY `date_sortie` DESC LIMIT :premiers, :parpages ; '; // On prépare la requête $query = $bdd->prepare($sql); $query->bindValue(':premiers', $premiers, PDO::PARAM_INT); $query->bindValue(':parpages', $parPages, PDO::PARAM_INT); // On exécute $query->execute(); // On récupère les valeurs dans un tableau associatif $employee1 = $query->fetchAll(PDO::FETCH_ASSOC); //require_once('close.php'); ?> <!-- debut container qui fait la pagination --> <div class="container" style=" max-width: 100%;margin:auto;"> <ul class="pagination" style="background: #ECE9E7;"> <li class="nav-item"> <a class="page-item " href="?page= <?= $currentPages - 1 ?>" class="page-link">Précédente</a> <?php for($pages = 1; $pages <= $pagess; $pages++): ?> </li> <li class="page-item"> <a class="nav-link" href="?page=<?= $pages ?>" class="page-link"> <?= $pages ?></a> <?php endfor ?> <?= ($currentPages == $pagess) ? "dernieres" : "" ?> </li> <li class="page-item"> <a class="nav-link" href="?page= <?= $currentPages + 1 ?>" class="page-link">Suivante </a> </li> </ul> </div> <!-- debut container pour le haut du tabeau --> <div class="container" style=" max-width: 100%;margin:auto;"> <div class="row"> <div class="col-lg" style="background: #33FF8A;"> <h5 class="card-title">Lien</h5> </div> <div class="col-lg" style="background: green;"> <h5 class="card-title">date de sortie </h5> </div> <div class="col-lg" style="background: green;"> <h5 class="card-title">nb de prises </h5> </div> <div class="col-lg" style="background: green;"> <h5 class="card-title">pêcheur (pseudo)</h5> </div> </div> </div> <!-- debut container pour afficher dans le tableau les differents informations --> <div class="container" style=" max-width: 100%;margin:auto;"> <?php foreach($employee1 as $donnees){?> <div class="row"> <div class="col-lg" style="border: solid;"> <a href="detail.php?pseudo=<?= $donnees['pseudo'] ?>&id=<?= $donnees['id'] ?>"> <img src="640.jpg" alt="" /> </a> </div> <div class="col-lg" style="border-bottom: solid;border-right: solid;"> <p class="card-text" style="white-space: pre-wrap;"><?= strftime('%d %m %Y', strtotime($donnees['date_sortie'])) ?></p> </div> <div class="col-lg" style="border-bottom: solid;border-right: solid;"> <p class="card-text" style="white-space: pre-wrap;"><?= $donnees['total'] ?></p> </div> <div class="col-lg" style="border-bottom: solid;border-right: solid;"> <p class="card-text" style="white-space: pre-wrap;"><?= $donnees['pseudo'] ?></p> </div> </div> <?php } ?> </div> <?php } //si le pecheur veut voir toutes les journnees de peche de tout le monde elseif($_GET['tous']=="mdp"){ echo "<p>de tous les pecheurs</p>"; //$reponse = $bdd->query('SELECT nom, possesseur FROM jeux_video WHERE possesseur=\'Patrick\''); // On détermine sur quelle page on se trouve if(isset($_GET['page']) && !empty($_GET['page'])){ $currentPage = (int) strip_tags($_GET['page']); }else{ $currentPage = 1; } // On se connecte à là base de données include('../base.php'); // On détermine le nombre total d'employee $sql = 'SELECT COUNT(*) AS nb_employee FROM `pecheurs_perle` WHERE pseudo = "'.$getpseudo.'";'; // On prépare la requête $query = $bdd->prepare($sql); // On exécute $query->execute(); // On récupère le nombre d'employee $result = $query->fetch(); $nbemployee = (int) $result['nb_employee']; // On détermine le nombre d'employee par page $parPage = 8; // On calcule le nombre de pages total $pages = ceil($nbemployee / $parPage); // Calcul du 1er donnees de la page $premier = ($currentPage * $parPage) - $parPage; $sql = 'SELECT * FROM `pecheurs_perle` WHERE pseudo = "'.$getpseudo.'" ORDER BY `date_sortie` DESC LIMIT :premier, :parpage ; '; // On prépare la requête $query = $bdd->prepare($sql); $query->bindValue(':premier', $premier, PDO::PARAM_INT); $query->bindValue(':parpage', $parPage, PDO::PARAM_INT); // On exécute $query->execute(); // On récupère les valeurs dans un tableau associatif $employee = $query->fetchAll(PDO::FETCH_ASSOC); //require_once('close.php'); ?> <!-- debut container qui fait la pagination --> <div class="container" style=" max-width: 100%;margin:auto;"> <ul class="pagination" style="background: #ECE9E7;"> <li class="nav-item"> <a class="page-item " href="?page= <?= $currentPage - 1 ?>" class="page-link">Précédente</a> <?php for($page = 1; $page <= $pages; $page++): ?> </li> <li class="page-item"> <a class="nav-link" href="?page=<?= $page ?>" class="page-link"> <?= $page ?></a> <?php endfor ?> <?= ($currentPage == $pages) ? "derniere" : "" ?> </li> <li class="page-item"> <a class="nav-link" href="?page= <?= $currentPage + 1 ?>" class="page-link">Suivante </a> </li> </ul> </div> <!-- debut container pour le haut du tabeau --> <div class="container" style=" max-width: 100%;margin:auto;"> <div class="row"> <div class="col-lg" style="background: #33FF8A;"> <h5 class="card-title">Lien</h5> </div> <div class="col-lg" style="background: green;"> <h5 class="card-title">date de sortie </h5> </div> <div class="col-lg" style="background: green;"> <h5 class="card-title">nb de prises </h5> </div> <div class="col-lg" style="background: green;"> <h5 class="card-title">pêcheur (pseudo)</h5> </div> </div> </div> <!-- debut container pour lafficher dans le tableau les differents informations --> <div class="container" style=" max-width: 100%;margin:auto;"> <?php foreach($employee as $donnees){?> <div class="row"> <div class="col-lg" style="border: solid;"> <a href="detail.php?pseudo=<?= $donnees['pseudo'] ?>&id=<?= $donnees['id'] ?>"> <img src="640.jpg" alt="" /> </a> </div> <div class="col-lg" style="border-bottom: solid;border-right: solid;"> <p class="card-text" style="white-space: pre-wrap;"><?= strftime('%d %m %Y', strtotime($donnees['date_sortie'])) ?></p> </div> <div class="col-lg" style="border-bottom: solid;border-right: solid;"> <p class="card-text" style="white-space: pre-wrap;"><?= $donnees['total'] ?></p> </div> <div class="col-lg" style="border-bottom: solid;border-right: solid;"> <p class="card-text" style="white-space: pre-wrap;"><?= $donnees['pseudo'] ?></p> </div> </div> <?php } ?> </div> <?php } //sans choix alors ce menu est afficher par defaut else{ echo "<p>sans choix donc tous les pecheurs </p>"; // On détermine sur quelle page on se trouve if(isset($_GET['page']) && !empty($_GET['page'])){ $currentPage = (int) strip_tags($_GET['page']); }else{ $currentPage = 1; } // On se connecte à là base de données include('../base.php'); // On détermine le nombre total d'employee $sql = 'SELECT COUNT(*) AS nb_employee FROM `pecheurs_perle`;'; // On prépare la requête $query = $bdd->prepare($sql); // On exécute $query->execute(); // On récupère le nombre d'employee $result = $query->fetch(); $nbemployee = (int) $result['nb_employee']; // On détermine le nombre d'employee par page $parPage = 8; // On calcule le nombre de pages total $pages = ceil($nbemployee / $parPage); // Calcul du 1er donnees de la page $premier = ($currentPage * $parPage) - $parPage; $sql = 'SELECT * FROM `pecheurs_perle` ORDER BY `date_sortie` DESC LIMIT :premier, :parpage;'; // On prépare la requête $query = $bdd->prepare($sql); $query->bindValue(':premier', $premier, PDO::PARAM_INT); $query->bindValue(':parpage', $parPage, PDO::PARAM_INT); // On exécute $query->execute(); // On récupère les valeurs dans un tableau associatif $employee = $query->fetchAll(PDO::FETCH_ASSOC); //require_once('close.php'); ?> <!-- debut container qui fait la pagination --> <div class="container" style=" max-width: 100%;margin:auto;"> <ul class="pagination" style="background: #ECE9E7;"> <li class="nav-item"> <a class="page-item " href="?page= <?= $currentPage - 1 ?>" class="page-link">Précédente</a> <?php for($page = 1; $page <= $pages; $page++): ?> </li> <li class="page-item"> <a class="nav-link" href="?page=<?= $page ?>" class="page-link"> <?= $page ?></a> <?php endfor ?> <?= ($currentPage == $pages) ? "derniere" : "" ?> </li> <li class="page-item"> <a class="nav-link" href="?page= <?= $currentPage + 1 ?>" class="page-link">Suivante </a> </li> </ul> </div> <!-- debut container pour le haut du tabeau --> <div class="container" style=" max-width: 100%;margin:auto;"> <div class="row"> <div class="col-lg" style="background: #33FF8A;"> <h5 class="card-title">Lien</h5> </div> <div class="col-lg" style="background: green;"> <h5 class="card-title">date de sortie </h5> </div> <div class="col-lg" style="background: green;"> <h5 class="card-title">nb de prises </h5> </div> <div class="col-lg" style="background: green;"> <h5 class="card-title">pêcheur (pseudo)</h5> </div> </div> </div> <!-- debut container pour lafficher dans le tableau les differents informations --> <div class="container" style=" max-width: 100%;margin:auto;"> <?php foreach($employee as $donnees){?> <div class="row"> <div class="col-lg" style="border: solid;"> <a href="detail.php?pseudo=<?= $donnees['pseudo'] ?>&id=<?= $donnees['id'] ?>"> <img src="640.jpg" alt="" /> </a> </div> <div class="col-lg" style="border-bottom: solid;border-right: solid;"> <p class="card-text" style="white-space: pre-wrap;"><?= strftime('%d %m %Y', strtotime($donnees['date_sortie'])) ?></p> </div> <div class="col-lg" style="border-bottom: solid;border-right: solid;"> <p class="card-text" style="white-space: pre-wrap;"><?= $donnees['total'] ?></p> </div> <div class="col-lg" style="border-bottom: solid;border-right: solid;"> <p class="card-text" style="white-space: pre-wrap;"><?= $donnees['pseudo'] ?></p> </div> </div> <?php } ?> </div> <?php } ?>

Eléphant du PHP | 330 Messages

16 juil. 2021, 11:37

ce qui pose soucis
c est la pagination des pécheurs qui veulent voir juste leurs sorties

j ai donc modifier comme ceci mais cela ne change rien

Code : Tout sélectionner

<div class="container" style=" max-width: 100%;margin:auto;"> <ul class="pagination" style="background: #ECE9E7;"> <li class="nav-item1"> <a class="page-item1 " href="tes-journees=tes-journnees?pages= <?= $currentPages - 1 ?>" class="page-link">Précédente</a> <?php for($pages = 1; $pages <= $pagess; $pages++): ?> </li> <li class="page-item1"> <a class="nav-link" href="?tes-journees=tes-journnees?pages=<?= $pages ?>" class="page-link"> <?= $pages ?></a> <?php endfor ?> <?= ($currentPages == $pagess) ? "dernieres" : "" ?> </li> <li class="page-item1"> <a class="nav-link" href="?tes-journees=tes-journnees?pages= <?= $currentPages + 1 ?>" class="page-link">Suivante </a> </li> </ul> </div>