2012-05-21 154 views
1

我有一個數據庫存儲圖像URL和其他數據,我想要一個畫廊來顯示他們,但因爲該網站是公開的,我可能想刪除一些圖像。當用戶上載圖片來源和標題時,它會使用自動增量唯一ID插入到數據庫中。當前腳本僅添加或減去ID以顯示下一個或上一個圖像。有沒有更好的方法來做到這一點? 我當前的腳本:PHP從MySQL獲取下一個結果

function image_control($id){ 
$next=$id+'1'; 
$prev=$id-'1'; 
$query = "SELECT MAX(id), MIN(id) FROM mp_images"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_array($result)){ 
    $max = $row['MAX(id)']; $min = $row['MIN(id)']; 
} 
if($next==$max+"1"){$next=$min;} if($prev==$min-"1"){$prev=$max;} 
echo "<a href='".$next."'>Next Image</a> <a href='".$prev."'>Previous Image</a>"; 
} 

這種失敗的一個例子是圖像,其中ID是3,4,5,7,8。

+3

請不要使用古老的'mysql_ *'函數編寫新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這裏是一個很好的PDO相關教程](http://goo.gl/vFWnC)。 – vascowhite

+0

vascowhite是正確的,但他的文章的鏈接瞭解更多不是很有幫助。我發現[這個stackoverflow的答案](http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons)更多的信息。 –

回答

5

用於獲取下一個ID的一些僞代碼:

$nextId = SELECT id FROM mp_images WHERE id > $currentId ORDER BY id ASC LIMIT 1 
if (no results) 
    // no next image 

和以前:

$prevId = SELECT id FROM mp_images WHERE id < $currentId ORDER BY id DESC LIMIT 1 
if (no results) 
    // no previous image 

這是給你做什麼,如果沒有下一個圖像(你可以爲實例獲取第一張圖片)或沒有之前的圖片(您位於第一張圖片上)。

+0

你能告訴我如何在休息之後獲取下一張圖片嗎? 例如如果7和8失蹤,我將如何取9? –

+1

什麼突破?我不明白你的意思... –

+0

我剛剛告訴過你。我的僞代碼就是這樣! –