2012-03-29 35 views
2

我的表有10條記錄,mysql_num_rows表示mysql資源中有10行,在phpMyAdmin中我可以看到10行, 但是當mysql_fetch_array被調用時,前兩次這個工作正常,然後最後8次它返回FALSE。當mysql_num_rows說有數據時,mysql_fetch_array返回false,爲什麼?

爲什麼?

$query = "SELECT * FROM building_types"; 
$building_types = mysql_query($query) or die(mysql_error());// works 
echo mysql_num_rows($building_types); // prints 10 
$num_rows = mysql_num_rows($building_types); 
for ($i = 0 ; $i < $num_rows ;$i++) 
{ 
    echo"hi1"; // this is printed 10 times 
    $building_type = mysql_fetch_array($building_types); 
    echo $building_type; // prints Array 2 times not 10 times ... 
    if ($building_type === FALSE) echo"hi2"; //this is printed the last 8 times ... 

感謝,

+0

問題解決了,罪魁禍首是一個重載的變量, 紙條給別人,檢查超載變量:) – dje1990 2012-03-29 14:56:40

回答

0

錯誤是由於重複使用變量$ building_types的,

0

嘗試使用while循環

例如

while ($row = mysql_fetch_assoc($building_types)) { 
    echo $row['ColumnName']; 
} 
+0

嘿嘿,謝謝,原來我用了一段時間循環,但是當這不起作用,我嘗試使用for循環,看看它是否會幫助我調試,我現在修復它,我認爲,罪魁禍首是一個重載的變量。不管怎麼說,還是要謝謝你。 – dje1990 2012-03-29 14:58:13

相關問題