2016-02-02 16 views
1

我做了這個:PHP的SQL錯誤(來自順序,其中位置)

$query1=mysql_query("select id, testo, titolo from events order by DESC WHERE id < 225 LIMIT 1"); 
while($query2=mysql_fetch_array($query1)) 
{ 
echo $query2['titolo']; 
} 

但不工作,我不明白爲什麼,有人能幫助我嗎? 我認爲問題出在查詢中。

更新:我犯了兩個錯誤:

第一:我已經在ORDER BY子句中缺少列名。 第二:ORDER的位置

+1

無法使用你看在手冊? http://dev.mysql.com/doc/refman/5.7/en/select.html。 'select ... from ... where ... order ... limit'。 – chris85

+0

@ chris85酷解釋:) – devpro

+0

@ chris85:感謝您的鏈接。我已經添加它在我的答案:) –

回答

5

寫您的查詢如下: -

SELECT id, testo, titolo FROM events WHERE id < 225 ORDER BY id DESC LIMIT 1 

至於建議由chris85,對於理解選擇... ...從...哪裏...爲了限制,

這個link是非常有用的。

希望這會幫助你:)

+0

對OP的WHY解釋會很有幫助。 – patricksweeney

+0

@patricksweeney:我添加了信息鏈接。謝謝你的評論。 –

0

你錯過了你的order by子句中的列名。該部分應該是order by col_name desc。此外,where子句出現在上述答案中所述的訂單之前。

1

您至少有2個錯誤。重寫查詢看起來像:

SELECT id, testo, titolo FROM events WHERE id < 225 ORDER BY id DESC LIMIT 1 
2

您正在使用ORDER BY之前WHERE條款你不能像這樣的結果。

第二個問題是您沒有提到ORDER BY中的id列或任何其他列。

修改後的查詢:

SELECT id, testo, titolo FROM events WHERE id < 225 
ORDER BY id DESC 
LIMIT 1 

旁註:

請使用mysqli_*PDO代替mysql_*監守這個擴展過時,在PHP 7