-2

请看一下这段代码:

    $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

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

4

2 回答 2

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'];
   }
}
于 2013-08-21T11:54:19.537 回答
0

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

于 2013-08-21T11:42:02.337 回答