我的页面看起来像:
| << 返回按钮 | 图片 | 前进按钮 >> |
每行都有一个唯一的 ID 号,使用该 ID 从我的数据库中获取结果。
<< 后退按钮是一个超链接,它应该包含前一行 ID。前进按钮 >> 应包含下一行 ID。
该ID
列具有带有 AUTO_INCREMENT 的 INTEGER 值。
我应该如何写我的查询?我可以使用负值吗?就像是:
SELECT * FROM `db` ORDER BY `ID` DESC LIMIT -1, 1
它有效吗?
我的页面看起来像:
| << 返回按钮 | 图片 | 前进按钮 >> |
每行都有一个唯一的 ID 号,使用该 ID 从我的数据库中获取结果。
<< 后退按钮是一个超链接,它应该包含前一行 ID。前进按钮 >> 应包含下一行 ID。
该ID
列具有带有 AUTO_INCREMENT 的 INTEGER 值。
我应该如何写我的查询?我可以使用负值吗?就像是:
SELECT * FROM `db` ORDER BY `ID` DESC LIMIT -1, 1
它有效吗?
您不能使用负值,但您可以id
在WHERE
子句中使用您的 current 来查找小于它的值,order byID DESC
并限制为auto_increment
3。id 列按降序排序,因此前 3 个值小于您的当前选择的 id 将被定位。
SELECT *
FROM `db`
WHERE `ID` < [your_current_id]
ORDER BY `ID` DESC
LIMIT 3
同样要获得接下来的三个,请>
按升序使用和排序。
SELECT *
FROM `db`
WHERE `ID` > [your_current_id]
ORDER BY `ID` ASC
LIMIT 3
不,你不能那样做。
如果您纯粹是通过 ID 进行分页,那么类似
next 10 records:
select ... where id > $current_id order by id ASC limit 10
previous 10 records:
select ... where id < $current_id order by id DESC limit 10
would do, but then you're stuck with only allowing to browse by IDs in order. A proper pagination function disassociates the field you're sorting by from the navigation thing. You store PAGE* NUMBERS into the previous/next link, then use the total number of records in the pagination set to figure out row offsets for use in the LIMIT, e.g.