我目前正试图做一些分页工作,但没有任何成功。
我正在执行的第一个查询是获取所需的所有数据:所以第一个结果应该在第一页上,第二个结果在第二页上,依此类推......但我总是得到第一个结果。虽然我将查询复制到phpmyadmin中以手动设置查询,但它向我展示了正确的结果。
以下是一切都在发生的代码。我被困住了为什么它不起作用。
$page = isset($_GET['page']) ? $_GET['page'] : 1;
$limit = 1;
$start = 0;
$query = $db->prepare("SELECT * FROM `users` LIMIT $limit OFFSET $start");
$query->execute();
$result = $query->fetchAll(PDO::FETCH_OBJ);
$count = count($result);
$query2 = $db->prepare("SELECT * FROM `users`");
$query2->execute();
$result2 = $query2->fetchALL(PDO::FETCH_OBJ);
$count2 = count($result2);
// Pagination
$total = ceil($count2 / $limit);
if ($page > 1) {
$start = ($page - 1) * $limit;
}
if ($page != $total) {
$next_page = '<li><a href="index.php?cat=users&page=' . ($page + 1) . '">»</a></li>';
} else {
$next_page = '<li class="disabled">»</li>';
}
if ($page > 1) {
$previous_page = '<li><a href="index.php?cat=users&page=' . ($page - 1) . '">«</a></li>';
} else {
$previous_page = '<li class="disabled">«</li>';
}
我做错了什么?
答案 0 :(得分:3)
您对$page
无所作为。查询中$start
始终为0。
您需要定义每页需要多少条记录,然后将其乘以$ page -1,例如
$start = ($page - 1) * $records_per_page;