[RESOLU] Ma pagination ne fonctionne pas

Mammouth du PHP | 506 Messages

07 déc. 2021, 15:42

bonjour a tous

j'ai repris un tuto pour réaliser une pagination
https://nouvelle-techno.fr/articles/met ... ion-en-php
mais je me suis retrouve avec un premier soucis avec cette boucle qi est utilisée dans le tutoriel
lorsque je l applique cela ne fonctionne pas avec ma requête
et également avec ce critère dans la requête created_at

Code : Tout sélectionner

//$articles = $query->fetchAll(PDO::FETCH_ASSOC); foreach($articles as $article){ ?> <tr> <td><?= $article['id'] ?></td> <td><?= $article['titre'] ?></td> <td><?= $article['created_at'] ?></td> </tr> <?php } ?>


donc après avoir chercher presque toute la nuit j ai un résultat qui apparaît mais la pagination ne fonctionne pas surement a cause de ce created_at et de la boucle

voici mon code si vous pourriez m aider

Code : Tout sélectionner

<?php //activation erreur error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // 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; } //connection require_once('bases.php'); // On détermine le nombre total d'articles $sql = "SELECT COUNT(*) AS nb FROM wp_posts a;"; // On prépare la requête $query = $bdd->prepare($sql); // On exécute $query->execute(); // On récupère le nombre d'articles $result = $query->fetch(); $nbArticles = (int) $result['nb']; // On détermine le nombre d'articles par page $parPage = 10; // On calcule le nombre de pages total $pages = ceil($nbArticles / $parPage); // Calcul du 1er article de la page $premier = ($currentPage * $parPage) - $parPage; //$reponse ancienne valeur SELECT $sql = "SELECT a.post_title , a.guid, b.meta_key, b.meta_value as level, c.meta_value as intro,d.meta_value as espace, u.display_name FROM wp_posts a LEFT JOIN wp_postmeta b ON a.ID = b.post_id LEFT JOIN wp_postmeta c ON a.ID = c.post_id LEFT JOIN wp_postmeta d ON a.ID = d.post_id LEFT JOIN wp_users u ON a.post_author = u.ID WHERE b.meta_key = 'date' AND c.meta_key = 'titre' AND d.meta_key = 'total_des_prises' AND a.post_status = 'publish' ORDER BY a.post_title 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 //$articles = $query->fetchAll(PDO::FETCH_ASSOC); //require_once('close.php'); ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> </head> <body> <main class="container"> <div class="row"> <section class="col-12"> <h1>Liste des articles</h1> <table class="table"> <thead> <th>ID</th> <th>Titre</th> <th>Date</th> </thead> <tbody> <?php while ($donnees = $query->fetch()){ ?> <tr> <td> <?php echo $donnees["guid"]; ?></td> <td><?php echo $donnees["level"]; ?> </td> <td><?php echo $donnees ["espace"]; ?> </td> <td><?php echo $donnees ["intro"]; ?> </td> <td> <?php echo $donnees ["a.post_date"]; ?> </td> </tr> <?php } ?> </tbody> </table> <nav> <ul class="pagination"> <!-- Lien vers la page précédente (désactivé si on se trouve sur la 1ère page) --> <li class="page-item <?= ($currentPage == 1) ? "disabled" : "" ?>"> <a href="./?page=<?= $currentPage - 1 ?>" class="page-link">Précédente</a> </li> <?php for($page = 1; $page <= $pages; $page++): ?> <!-- Lien vers chacune des pages (activé si on se trouve sur la page correspondante) --> <li class="page-item <?= ($currentPage == $page) ? "active" : "" ?>"> <a href="./?page=<?= $page ?>" class="page-link"><?= $page ?></a> </li> <?php endfor ?> <!-- Lien vers la page suivante (désactivé si on se trouve sur la dernière page) --> <li class="page-item <?= ($currentPage == $pages) ? "disabled" : "" ?>"> <a href="./?page=<?= $currentPage + 1 ?>" class="page-link">Suivante</a> </li> </ul> </nav> </section> </div> </main> </body> </html>

Mammouth du PHP | 506 Messages

08 déc. 2021, 09:09

il y avait une erreur dans la calcul du nombre de ligne