【发布时间】:2016-03-09 22:57:29
【问题描述】:
我目前正在尝试进行一些分页工作,但没有任何成功。
我正在执行的第一个查询是获取所有需要的数据:所以第一个结果应该在第一页上,第二个结果在第二个页面上,依此类推......但我总是得到第一个结果。虽然我将查询复制到 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>';
}
我做错了什么?
【问题讨论】:
-
您对
$page无能为力。$start在查询中始终为 0。您将需要定义每页需要多少条记录,然后将其乘以 $page -1,例如$start = ($page - 1) * $records_per_page; -
搞砸了,还不如把它添加为答案...
标签: php mysql pdo pagination