我不确定如何调用这个函数,但我会尽可能描述我想达到的效果。通过MySQL循环播放结果
所以,首先,有一个变量,称为$id
,其实际上是$_GET['id']
。假设用户通过请求输入以下页面:/page.php?id=6
。现在我需要做的是提供关于数据库后面3页的信息。这里是数据库:
TABLE `pages`
id | page_name
______________________
1 | AAAAA
2 | BBBBB
3 | CCCCC
4 | DDDDD
5 | EEEEE
6 | FFFFF
7 | GGGGG
8 | HHHHH
9 | IIIII
所以,当请求页面id为6
,下面的脚本返回下一个3页(7,8,9):
$res = mysql_query("SELECT * FROM `pages` WHERE `id`>'".intval($id)."' ORDER BY `id` DESC LIMIT 3");
while($arr = mysql_fetch_assoc($res))
{
print("Page ID: ".$arr['id']."; Page Name: ".$arr['page_name']."\n");
}
这里是输出:
Page ID: 7; Page Name: GGGGG
Page ID: 8; Page Name: HHHHH
Page ID: 9; Page Name: IIIII
,它工作正常,直到$id
是大于6,当它是(/page.php?id={7/8/9}
),输出不显示3页了,而是2页,1个PAG e,当$id
为9
时,分别没有输出。
所以我的问题是:有没有一种方法可以返回并从没有足够的结果(小于3)开始显示?
- 当访问
/page.php?id=8
,输出应包含ID9
,1
和2
页面。 - 访问
/page.php?id=9
时,输出应包含页面,其编号为1
,2
,3
。 - 访问
/page.php?id=3
时,输出应该包含编号为4
,5
,6
等的页面。
你的意思是比执行查询的第二次没有WHERE条件和其他基于您第一次获得的结果数量的LIMIT? – Oswald