2014-01-06 32 views
1

我有一个表,我得到汽车形成数据库和我列出了它在该表:从数据库中获得MySQL的N值

$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辆我用身份证排序这些车,但是当我删除汽车(例如Carid = 5)在第一页有8辆汽车,但其他网页有9辆汽车我怎么能得到第一个N值没有CarId从数据库可以解释与SQL代码。

回答

4

将一个LIMIT添加到您的查询。

例如

SELECT * FROM tbl LIMIT 0, 9 

将从tbl选择第一9项。

为了我说出它的顺序符合您查询并保存成

SELECT * FROM Car ORDER BY Car_ID LIMIT 0, 9 

前9行。对于接下来的九行,只需将这两个数字增加10,依此类推。

+1

无论使用所提供的答案,你仍然可以'ORDER BY Car_ID'维护您的订购 – Dale

2

而不是代码它像你这样做,只是用LIMIT:

SELECT * FROM Car LIMIT 0,9 

然后

SELECT * FROM Car LIMIT 9,9 
0

我想其他的答案(使用限制和偏移量)将适用于你的情况。但是,如果你(或其他人)永远需要提升性能,并需要管理快速查询比前几页多,你应该实现分页这样的:

SELECT f1, f2, ... 
    FROM tbl 
     WHERE Car_ID > $id 
    ORDER BY Car_ID 
    LIMIT 10 
0

使用“限价抵消,ROW_COUNT”在您声明

试试这个SQL语句SELECT * FROM Car LIMIT '$pageN*$nperpage', '$nperpage'

$nperpage将是一个数量每页项目和$pageN将是一个页码(注意,在这种情况下,页码编号从0开始)。

http://dev.mysql.com/doc/refman/5.0/en/select.html