我有一個「橫幅」表,它具有映像文件的名稱和路徑,每次訪問者導航到另一個頁面時都會隨機查看。如何從數據庫中選擇隨機ID,不包括已刪除的ID?
橫幅表由banner_id(auto_increment,unique,primary,tinyint),banner_name(varchar)和banner_path(varchar)字段組成。
橫幅表格將通過控制面板進行編輯。新橫幅將被添加,一些橫幅會在一段時間後被刪除,並且可能會被更新。一般CRUD操作,你知道...
現在...因爲我的目標是隨機顯示橫幅,我需要一個隨機數生成器函數,它可以排除特定的功能。
更清晰,
比方說,我的表看起來像這樣:
banner_id banner_name banner_path
--------- ------------ ------------
1 First Banner first_banner.jpg
2 Second Banner second_banner.jpg
3 Third Banner third_banner.jpg
我可以使用PHP函數這樣輕鬆獲得隨機ID:mt_random(1, 3);
別急。如果我刪除其中一個橫幅會怎麼樣?
banner_id banner_name banner_path
--------- ------------ ------------
1 First Banner first_banner.jpg
3 Third Banner third_banner.jpg
在這種情況下,隨機輸出變爲「2」,會發生什麼情況?沒有「2」的banner_id行?所以我必須從隨機發生器號碼範圍中排除DELETED ID。這是最佳做法嗎?如果是這樣,我該怎麼做?
我完全打開任何新的想法,這將幫助我做我想做的事情。
請幫我找出這個問題...
感謝
感謝。
呃..我不太清楚這個答案。你能解釋一下這種方法如何給我提供隨機性? :s – scaryguy
抱歉,胖手指 - 更新了我的答案。 –
'#1064 - 你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以在'FLOOR(RAND()* 4)'附近使用正確的語法,在第1行'1' 甚至不能在phpMyAdmin SQL窗口中工作?我錯過了什麼? :s – scaryguy