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>