【问题标题】:php - Making a pagination by Limiting results from Mysql Database [duplicate]php - 通过限制 Mysql 数据库的结果进行分页 [重复]
【发布时间】:2016-01-07 20:53:17
【问题描述】:

我正在制作一个脚本,从 mysql 获取一些行并将它们返回给用户 一段时间后,这些行数增加了 300,现在加载页面需要一点时间。 我想给它们分页。每页包含 50 个,所以我有 6 页,我的意思是:

row 1-50 in page 1
row 51-100 in page 2
row 101 to 150 page 3
row 151 to 200 page 4
row 201 to 250 page 5
row 250 to 300 page 6

我对通过在我的 mysql 查询中使用 LIMIT 来限制它们有一些想法,但不知道如何为其制作按钮(页面按钮) 我想要代码做到这一点 对不起,我的英语不好,希望你能理解。

【问题讨论】:

  • pagination上搜索教程
  • 伙计们请不要标记为重复。我无法在其他问题中得到我想要的。但我在这里得到了答案。祝你好运!

标签: php


【解决方案1】:

在您的 SQL 语句中使用 LIMIT

SELECT * FROM `wherever` ORDER BY `whatever` LIMIT 0,50

然后将起点 (0) 替换为 PHP 变量,并将该变量设置为 $start = $page_number * 50;

SELECT * FROM `wherever` ORDER BY `whatever` LIMIT $start,50  

在此处阅读 mysql LIMIT 语法:https://dev.mysql.com/doc/refman/5.0/en/select.html 第一个数字是开始,第二个数字是还有多少。除非只给出一个数字,在这种情况下它还有多少。

就按钮而言,有几种方法可以做到这一点。但是基本的数学在这里:

$total_rows = mysql_num_rows(mysql_query($original_query_without_limit));
$total_pages = $total_rows / 50;

$prev_page = $current_page - 1;
$next_page = $current_page + 1;

if ($prev_page > 0){
  // Print previous page link/button
}

if ($next_page < $total_pages){
  // Print next page link/button
}

【讨论】:

  • 我以为我只能给 LIMIT 一个参数。谢谢。但是我怎样才能为此做一个按钮?
【解决方案2】:

尝试使用OFFSET 查询

SELECT * FROM `table` LIMIT 50 OFFSET <amount>

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 2016-08-26
    • 2012-05-19
    • 2012-09-05
    相关资源
    最近更新 更多