请看一下这段代码:
$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,我真的不知道为什么:( 我之前用过这样的代码并没有问题。 有人能帮助我吗?
答案 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))
的输出以确保已返回数据。