目前我的数据库中有12行。 在添加所有这些之间我删除了一些,因此ID列没有正确提升。
我正在运行以下查询,使用SQL $page
创建页面是$_GET
,这是数字(1,2,3等):
"SELECT *
FROM cms_guestbook
WHERE moderated = 'Y'
ORDER BY id DESC
LIMIT ". (($page - 1) * 5) . ", " . (5 * $page)
添加第1页,它正确显示,当我var_dump
此查询显示时:LIMIT 0, 5
。
添加第2页它无法正确显示。我看到7行(5-12),但我的var_dump
说:LIMIT 5, 10
。
第3页也正确显示第10-12行。 var_dump
也说:LIMIT 10, 15
。
有谁知道我做错了什么?谢谢!
答案 0 :(得分:3)
LIMIT需要2个参数 - OFFSET,行数。
在你的情况下,你会想......
LIMIT 0, 5
LIMIT 5, 5
LIMIT 10, 5
如果您一直希望返回5行,但每次都以不同的索引开始。
根据您的问题,将LIMIT子句更改为
LIMIT ". (($page - 1) * 5) . ", 5"
查看MySQL Select & Limit details了解详情。