Probleme pagination

Résolu/Fermé
yvesman - 29 sept. 2021 à 11:50
 yvesman - 29 sept. 2021 à 12:40
Bonjour,

je suis en train de travailler sur un script de pagination mais j'ai cette erreur :

Fatal error: Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'created_at' in 'order clause' in /home/u320889525/domains/............./public_html/..........php:47 Stack trace: #0 /home/u320889525/domains/.........../public_html/.............php(47): PDOStatement->execute() #1 {main} thrown in /home/u320889525/domains/........../public_html/..........php on line 47


<?php
// 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
require_once('db_connect.php');

// On détermine le nombre total d'articles
$sql = 'SELECT COUNT(*) AS nb_articles FROM `produits`;';

// On prépare la requête
$query = $conn->prepare($sql);

// On exécute
$query->execute();

// On récupère le nombre d'articles
$result = $query->fetch();

$nbArticles = (int) $result['nb_articles'];

// On détermine le nombre d'articles par page
$parPage = 30;

// On calcule le nombre de pages total
$pages = ceil($nbArticles / $parPage);

// Calcul du 1er article de la page
$premier = ($currentPage * $parPage) - $parPage;

$sql = 'SELECT * FROM `produits` ORDER BY `created_at` DESC LIMIT :premier, :parpage;';

// On prépare la requête
$query = $conn->prepare($sql);

$query->bindValue(':premier', $premier, PDO::PARAM_INT);
$query->bindValue(':parpage', $parPage, PDO::PARAM_INT);

print_r($query);
echo '<br/>';
print_r($sql);

// 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
foreach($articles as $article){
?>
<tr>
<td><?= $article['id'] ?></td>
<td><?= $article['titre'] ?></td>
<td><?= $article['created_at'] ?></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>

2 réponses

yg_be Messages postés 23408 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 décembre 2024 Ambassadeur 1 557
29 sept. 2021 à 12:25
bonjour,
as-tu vérifié qu'il y avait une colonne nommée created_at dans la table produits?
0
j'ai modifie les requetes c'est bon ca marche

merci
0