2012-03-29 34 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

相关问题