2011-08-10 105 views
0

我已經設置了我的代碼來獲取上一個和下一個id。但一旦它達到數字的最後或開始,它不會讓我分別下一個或前一個。mysql上一個/下一個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個,目前,它會顯示IID,5用戶ID我循環,我可以點擊上一個和下一個,然後分別轉到iID 3和10。但是當它達到3或10時,它是最大的。我想繼續通過查詢。所以如果我打到以前,它會去3,如果我再次擊中前,它會去10,然後5,然後3,然後回到10 ...

有人可以幫我嗎?

感謝

回答

1

如果你得到的最小和最大IID的你有,你可以從

更新檢查的範圍(這應該返回兩個值最小/最大):

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 
} 
+0

我還沒試過,因爲我現在正在工作。你能解釋CASE聲明嗎?我試圖尋找,但我找不到一個好的解釋。謝謝 – hellomello

+0

它必須是查詢嗎?你可以使用最小/最大值可以從那裏計算出來嗎? –

+0

嗯,以及我想要做的是獲取圖像,我已經在mysql中設置了我的圖像路徑名。我想點擊上一張和下一張圖片。有沒有另一個選項的例子呢?謝謝您的幫助! – hellomello