我有一张桌子,我从汽车组成数据库,并在此表中列出:
$row_id=$_GET["id"];
$solK = ($row_id-1) * 9;
$sagK = ($row_id) * 9;
$sorgu2 = mysql_query("SELECT * FROM Car WHERE Car_ID > '$solK' AND Car_ID < '$sagK'");
每个页面都有9辆汽车我使用id来排序这些汽车但是当我删除一辆汽车(例如Carid = 5)在第一页有8辆汽车但其他页面有9辆汽车我怎么能得到前N个值没有CarId来自数据库可以用sql代码解释。
答案 0 :(得分:4)
在您的查询中添加LIMIT
。
例如
SELECT * FROM tbl LIMIT 0, 9
将从tbl
中选择前9个条目。
为了匹配您的查询并保留顺序,我将其声明为
SELECT * FROM Car ORDER BY Car_ID LIMIT 0, 9
前九行。对于接下来的九行,只需将两个数字递增10,依此类推。
答案 1 :(得分:2)
不要像你所做的那样编码,只需使用LIMIT:
SELECT * FROM Car LIMIT 0,9
然后
SELECT * FROM Car LIMIT 9,9
答案 2 :(得分:0)
我认为其他答案(使用限制和偏移)将适合您的情况。但是,如果您(或其他任何人)需要提高性能,并且需要管理超过前几页的快速查询,您应该实现这样的分页:
SELECT f1, f2, ...
FROM tbl
WHERE Car_ID > $id
ORDER BY Car_ID
LIMIT 10
答案 3 :(得分:0)
在你的陈述中使用“LIMIT offset,row_count”
尝试此SQL语句SELECT * FROM Car LIMIT '$pageN*$nperpage', '$nperpage'
$nperpage
每页有多个项目,$pageN
将是一个页码(请注意,在这种情况下,页码编号从0开始)。