mysql上一个/下一个id和循环

时间:2011-08-10 13:19:33

标签: php mysql pagination

我已设置我的代码以获取上一个和下一个ID。但是一旦它达到了数字的最后一个或开头,它将不会让我分别去下一个或前一个。

这就是我设置sql查询的方式

$pre = mysql_query("SELECT iID,userID FROM images WHERE iID < # AND userID = 4 ORDER BY iID DESC LIMIT 1"); 
$nex = mysql_query("SELECT iID,userID FROM images WHERE iID > # AND userID = 4 ORDER BY iID ASC LIMIT 1");

有人可以帮助我循环查询吗?因此,如果它达到最低数字或最大数字,它将返回循环

前:

iID     userID

3        4
4        0
5        4
10       4

因此,如果我循环遍历所有带有4的userID,并且当前它将显示iID,5,我可以单击上一个和下一个,然后它将分别转到iID 3和10。但当它达到3或10时,它是最大值。我想继续查询。因此,如果我点击前一个,它将变为3,如果我再次击中前一个,它将变为10,然后是5,然后是3,然后变回10 ...

有人可以帮助我吗?

感谢

1 个答案:

答案 0 :(得分:1)

如果您获得最小和最大iID,则可以从

中查看范围

UPDATE(这应该返回两个最小值/最大值):

SELECT MAX(iID) AS max_iid, MIN(iID) AS min_iid
FROM images
WHERE userID = 4

PHP:

// Check if image is between the min/max
if($iID <= $max_iid && $iID >= $min_iid) {
    // display image

// if image id is greater than the max, display the min id
} elseif($iID > $max_iid) {
    // display min_iid image

// else display the max image id
} else {
    // display max_iid image
}