在mysql_fetch_assoc之后不进入while循环

时间:2013-08-21 11:38:56

标签: php mysql

请看一下这段代码:

    $sql = "SELECT * FROM shop";
    $result = mysql_query($sql);

    echo $result;
    echo "before lop";

    while ($xxx = mysql_fetch_assoc($result)) {

    echo "inside lop";
    echo $xxx['column_name'];

 }
    echo "after lop";

当我运行这样的代码时,我会收到:

Resource id #244 
before lop
after lop

它没有进入lop,我真的不知道为什么:( 我之前用过这样的代码并没有问题。 有人能帮助我吗?

2 个答案:

答案 0 :(得分:4)

 $sql = "SELECT * FROM shop";
 $result = mysql_query($sql) or die(mysql_error());

 echo mysql_num_rows($result);

检查shop表中有多少条记录。我认为商店表是空的。这就是为什么不进入while循环。

你可以这样做

$count = mysql_num_rows($result);

if($count > 0) {
   while ($xxx = mysql_fetch_assoc($result)) {
      echo $xxx['column_name'];
   }
}

答案 1 :(得分:0)

我猜测对mysql_fetch_assoc()的调用返回false,可能是因为没有从数据库返回结果,这会导致while循环甚至不执行一次。我会检查var_dump(mysql_fetch_assoc($result))的输出以确保已返回数据。

相关问题