【问题标题】:PDO pagination query not executed correctly?PDO 分页查询未正确执行?
【发布时间】: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) . '">&raquo;</a></li>';

} else {

    $next_page = '<li class="disabled">&raquo;</li>';

}

if ($page > 1) {

    $previous_page = '<li><a href="index.php?cat=users&page=' . ($page - 1) . '">&laquo;</a></li>';

} else {

    $previous_page = '<li class="disabled">&laquo;</li>';

}

我做错了什么?

【问题讨论】:

  • 您对$page 无能为力。 $start 在查询中始终为 0。您将需要定义每页需要多少条记录,然后将其乘以 $page -1,例如$start = ($page - 1) * $records_per_page;
  • 搞砸了,还不如把它添加为答案...

标签: php mysql pdo pagination


【解决方案1】:

您对$page 无能为力。 $start 在查询中始终为 0。

您需要定义每页需要多少条记录,然后将其乘以 $page -1,例如

$start = ($page - 1) * $records_per_page;

【讨论】:

  • 天哪,现在我看到了...代码实际上在那里,但位置错误。我真的应该给我买一只橡皮鸭:)谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-05-10
  • 2015-04-17
  • 1970-01-01
  • 1970-01-01
  • 2021-02-15
  • 2021-10-13
相关资源
最近更新 更多