使用PHP分页MySQL结果

使用PHP分页MySQL结果,php,mysql,pagination,Php,Mysql,Pagination,如果输出很长,您将如何将MySQL结果分为“下一个”和“上一个” $data = mysql_query("SELECT * FROM table WHERE ... AND ...") or die(mysql_error()); while($info = mysql_fetch_array( $data )) { echo $info['value']; } 其中的值将从1到10列出,然后转到下一步?第一页可以使用LIMIT 10完成,但是我该如何完成以下几页 您可以在LI

如果输出很长,您将如何将MySQL结果分为“下一个”和“上一个”

$data = mysql_query("SELECT * FROM table WHERE ... AND ...")  
  or die(mysql_error());

while($info = mysql_fetch_array( $data ))
{
  echo $info['value'];
}

其中的值将从1到10列出,然后转到下一步?第一页可以使用
LIMIT 10
完成,但是我该如何完成以下几页

您可以在LIMIT子句中指定偏移量:

LIMIT 0, 10
LIMIT 10, 10
LIMIT 20, 10
...
因此,在构建限制条款时,您的代码应该如下所示:

$offset = ($current_page - 1) * $items_per_page;
$sql = "[...] LIMIT $offset, $items_per_page";
当然,您必须确保
$current\u page
>=1
。但这很容易做到:

$current_page = empty($_GET['current_page']) ? 1 : max(1, (int)$_GET['current_page']);
我更喜欢用偏移词,因为它可读性更好


还要记住,偏移量是基于0的(返回的第一行的偏移量是0,而不是1)。所以限制10偏移量10将返回第10行到第19行。

谢谢您,这正是我想要的。MySQL支持偏移量吗?比极限x,y语法好得多。那么我最好使用偏移量吗?确实如此(从版本5开始)。没有功能上的区别,Alfie,只是让代码对其他人更具可读性,不过如果你有ThiefMaster写的变量名,这也会告诉你哪个是哪个。使用jquery load()函数,可以通过php$_GET['offset']调用偏移量会更容易;刚刚试过,在主页上查询每10行回音“1”、“2”,。。。onclick事件$('#DIV').load(file.php?id='+id+'&offset='+offset);谢谢你,也谢谢你,老师!
SELECT * FROM table WHERE ... AND ... LIMIT 10 OFFSET 10