php - 通过限制Mysql数据库的结果进行分页

时间:2015-10-09 19:57:31

标签: php

我正在制作一个从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限制它们但不知道如何为它做按钮(页面按钮) 我希望代码能够做到这一点 抱歉我的英语不好,我希望你明白。

2 个答案:

答案 0 :(得分:1)

在SQL语句中使用LIMIT

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

然后用PHP变量替换起点(0),并将该变量设置为$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
}

答案 1 :(得分:1)

尝试使用OFFSET查询

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