2013-08-20 64 views
2

我有一個選擇,但不能讓它與WHERE LIKE函數一起工作。下面一行有什麼問題?Mysql AND WHERE選擇

$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' AND ORDER BY id DESC"); 

它的工作,直到我說

AND platform LIKE '%wiiu%' 

平臺列包含細胞與來自一個選擇框形式的多個值。因此,它寫道,WiiU的,PS4,XBOX360,PC等....一定是簡單的,但我試圖像一百萬次......

+0

做這些細胞的條件'where'子句中的其餘部分相匹配?不返回任何內容的最可能原因是數據中沒有匹配。 –

+1

刪除和之前訂購 –

回答

9

取出ANDORDER BY

$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' AND ORDER BY id DESC"); 

應該

$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' ORDER BY id DESC"); 
+0

謝謝,就是這樣! –

1
$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' ORDER BY id DESC"); 

你甲肝額外 '和' 末

0

它應該是這樣的:

$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' ORDER BY id DESC"); 
1

有一個額外的AND,它應該是:

$result = mysql_query("SELECT * FROM games WHERE soort='nieuws' AND gamenaam='$spelnaam' AND platform LIKE '%wiiu%' ORDER BY id DESC"); 
1
SELECT * FROM games 
WHERE soort = 'nieuws' 
AND gamenaam = '$spelnaam' 
AND platform LIKE '%wiiu%' 
ORDER BY id DESC 

不應該有一個ORDER BY語句之前的AND

此外,我覺得義不容辭的衝動,請您考慮使用mysqliPDO代替mysql功能,mysql已被棄用。

0

你真的不應該把逗號分隔值放在一個字段中。你實際上提供了一個很好的例子,說明爲什麼不說你有控制檯名稱。如果你正在尋找與原始Wii相關的東西,該怎麼辦?你會有類似WHERE soort LIKE "%wii%"的東西,對嗎?那麼,這也將返回所有與WiiU有關的項目,因爲「WiiU」也是LIKE「%wii%」。

這樣做的正確方法涉及製作和加入鏈接表。

2

請不要使用mysql_ *,因爲它已被棄用,請改爲使用mysqli_或PDO。
裁判http://php.net/manual/en/book.mysqli.php

,改變你的查詢

SELECT * FROM games 
WHERE soort='nieuws' 
AND gamenaam='$spelnaam' 
AND platform LIKE '%wiiu%' 
ORDER BY id DESC"