2014-01-08 59 views
0

大家好我想問你爲什麼,當我把限制0,5和5,10它不能正常工作這裏是我的代碼。限制在PHP SQL不工作

$sql = mysql_query("SELECT * FROM vn_questions WHERE published = 1 limit 0,5 "); 
while($data=mysql_fetch_array($sql)) 
{ 
    echo $data['author']; 
} 

它給了我5分的結果,但是,當我把

$sql = mysql_query("SELECT * FROM vn_questions WHERE published = 1 limit 5,10 "); 
while($data=mysql_fetch_array($sql)) 
{ 
    echo $data['author']; 
} 

它給了我6 ..哪裏出了問題?如何解決呢?我嘗試+1 -1,但輸出無法正常工作。

+2

'5-6-7-8-9-10 = 「6」'實例。 '0'沒有,那麼你開始計數到5 = 5 ---你期望的結果是什麼? –

+0

如果您不想設置限制,請將'LIMIT'離開,或丟棄第一個數字。 I.e .:「極限10」,那會給你10個結果。哦,和我的評論評論,這是「簡而言之」;-) –

+0

我認爲可能會有一些混淆,因爲我相信(糾正我,如果我錯了),但MSSQL和MYSQL處理限制不同。對於mysql而言,數字不是一個較低和較高的範圍。請參閱下面的答案以瞭解限制的工作原理 –

回答

2

MYSQL LIMIT的語法是LIMIT OFFSET COUNT,所以你的第二個查詢所說的是從記錄5開始,並向我顯示10個結果。你的表只有6條記錄嗎?因爲那不到10,它只會顯示那6個可用。

從SQL手冊

With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1):

AND

With one argument, the value specifies the number of rows to return from the beginning of the result set:

+0

如果你可以點擊答案旁邊的複選框接受它,那將不勝感激。 –

+0

非常感謝我應該首先檢查谷歌,但你真的幫了我很多;) – user3175393