2015-11-21 36 views
0

我有一個顯示「推薦項目」列表的在線商店,它的工作方式是從數據庫中隨機選擇6行,像這樣。如何從mysql中選擇隨機表時設置異常?

$sql= mysqli_query ($conn, "SELECT * FROM items WHERE ORDER by RAND() LIMIT 6"); 

您從類別列表中單擊一個項目,它專門打開一個新的窗口,針對該項目,其中正在顯示推薦產品列表下方的時候了。

所以我的問題是,如何在推薦的項目列表中再次顯示已顯示在新窗口中的項目?一個項目的「當前」打開的窗口中的PHP代碼是:'.$data['id'].'

的什麼,我試圖實現將是這樣一個完美的概念:

$sql= mysqli_query ($conn, "SELECT * FROM items WHERE id NOT '.$data['id'].' ORDER by RAND() LIMIT 6"); 

硬如我試着更清楚,這是我能夠描述我的問題的最好方式。我的確希望這個描述沒有多少含糊之處!

+0

怎麼樣的MySQL教程網站? – Drew

回答

0

您可以在查詢中使用不等於(!=)的值。

$sql= mysqli_query ($conn, "SELECT * FROM items WHERE id != '{$data['id']}' ORDER by RAND() LIMIT 6"); 
+0

感謝您的快速回復!我得到下面的提示'Undefined variable:data' .. meanwhilte''。$ data ['id']。''也被用在同一頁面上,所以它被定義了,我沒有得到任何錯誤。 – P4P4DR4G0N

+0

沒有看到任何更多的代碼而不僅僅是你的查詢,我不能建議你爲什麼會得到一個未定義的錯誤。 – Tristan

0

放置在NOT EQUAL TO(<>)運算符兩邊的兩個表達式不相等。

<>, != 

您的疑問: -

SELECT * FROM items WHERE id <> '{$data['id']}' ORDER by RAND() LIMIT 6 

SELECT * FROM items WHERE id != '{$data['id']}' ORDER by RAND() LIMIT 6 
+0

爲什麼它聲明數據是未定義的?它已經在同一頁面上的某處使用,並且沒有這樣的警告。 ''。$ data ['id']。'' – P4P4DR4G0N

+0

請檢查** $ data ['id']的值**是否設置爲@ P4P4DR4G0N –

+0

打印$ data ['id']的值 –