2013-01-07 69 views
1

我一直在寫一些代碼,從MySQL數據庫中提取條目。這些是數字1到38爲什麼我的代碼只返回每一秒的結果在PHP的MySQL?

但是,它只返回每秒的數字,即2,4,6,8而不是1,2,3,4。

$result = mysql_query("select (caseID) FROM `case` order by caseID") 
or die(mysql_error()); 

while(mysql_fetch_array($result)) 
{ 
    $row = mysql_fetch_assoc($result); 
    $countName= $row['caseID']; 

    Print $countName; 
} 

我已經嘗試了各種更改並將代碼減少到最低限度。但似乎沒有任何工作。

+0

** Heads up!** PHP的下一個主要版本是*棄用* mysql_'系列函數。現在將是[切換到PDO](http://php.net/book.pdo)或[mysqli](http://php.net/book.mysqli)的好時機。 – Charles

回答

6

調用mysql_fetch_array兩次,那就是爲什麼。

試試這個

while($row=mysql_fetch_assoc($result)) 
{ 
$countName= $row['caseID']; 
print $countName; 
} 
+0

Doh!太好了謝謝。 – blarg

+0

Cheeers!順便不要使用mysql_ *功能的新代碼 –

+0

咦?你是什​​麼意思? – blarg

0

這是因爲你在呼喚mysql_fetch_array,它檢索一個結果,然後調用mysql_fetch_assoc,它檢索另一個結果。然後重複,直到沒有更多的結果。或者,換句話說,您在不使用它的情況下獲取一個結果,然後獲取隨後使用的另一個結果,從而有效地跳過所有其他結果。

這應該做的工作:

while($row = mysql_fetch_assoc($result)) 
{ 
    print $row['caseID']; 
} 

此外,看一看the documentation。將你的眼睛轉向顯示「警告」的大盒子,並且有一個停止標誌。

相關問題