2011-07-07 179 views
1

我有一個sql表images它有列id,imagePath,caption``countPHP邏輯問題

要查看這些圖片我做的是什麼,我問頁碼和查詢iamge

$limit=$page-1; 
$sel=$mysqli->prepare("SELECT id,imagePath,caption,count from images". 
         " order by id desc limit ".$limit.",1"); 

這正確顯示圖像。

但我有另一個功能,顯示從數據庫的總圖像中的圖像的4個隨機縮略圖。與這些圖像我也給一個href標記,以便當用戶點擊該鏈接時,他被帶到頁面的圖像。

現在的問題是與這些鏈接。 假設我有這樣的圖像數據庫

id=1 
id=2 
id=3 
id=4 
id=5 

要找到特定的ID我做什麼的頁碼

$newid=$idOfTheCurrentImage-($idOfTheLastImage-1); 

使用這個邏輯,我得到

id=1 page=5 
id=2 page=4 
id=3 page=3 
id=4 page=2 
id=5 page=1 

這如果所有ID都符合要求,則會給出正確的結果。但是,如果任何人的id被刪除,這個邏輯失敗。

有沒有其他解決方案?

+1

爲什麼不通過'id'而不是'page'(或兩者)?這將更容易和更快:'SELECT id,imagePath,標題,從圖像計數,其中id = $ id' – cwallenpoole

+0

這將顯示圖像按升序排列,我想先顯示最近添加的圖像等等。 –

回答

1

你可以做到以下幾點:

  • 添加另一個字段, '序列號',所以你必須對($ ID,$ seq_number),並做你的計算,你有$ seq_number一樣。不要忘記更新刪除時的序列號字段。

  • 獲取數組上的所有id,並在那裏計算。在此選項中,計算中不使用$ id值,只使用數組索引。

希望這會有所幫助。乾杯

+0

Thnaks會試用它,很快會讓你知道:) –

+0

我用數組方法,它的工作,謝謝;) –

1

我會建議使用運行計數器以外的東西作爲頁面分母。正如你所說,它可能會發生變化,或者如果兩者之間缺少數字,它就會失敗。

您的圖片有一個標題。你可以從中創建一個「slug」,並用它作爲頁面分母。

創建鏈接時不再有怪誕的數學或者模糊的邏輯,沒有更多的消失頁面。

+0

嘿好主意,一定會在我未來的項目中使用此感謝 –