0

我的 mysql 数据库的表中有一条记录。我使用以下 PHP 代码来检索数据:

$result = mysql_query($query = "SELECT realname FROM t_user");

if($result)
{
  while($data=mysql_fetch_assoc($result)){
    echo $data['realname'];
  }
}

结果没有出现,但是当我使用如下所示的do-while循环时:

if($result)
{
  $data=mysql_fetch_assoc($result);
  do{
    echo $data['realname'];
  } while($data=mysql_fetch_assoc($result));
}

结果出现了,然后我尝试在表中再添加一条记录,在while循环中,只显示一条数据记录(第一条记录),而do-while循环显示所有数据。这是为什么?是不是因为我的代码错了?

4

2 回答 2

0

您显示的代码不可能出现此问题,因此合乎逻辑的解释是:

$result = mysql_query($query = "SELECT realname FROM t_user");

if($result)
{
  // Something fetched a row from $result before this statement is run
  while($data=mysql_fetch_assoc($result)){
    echo $data['realname'];
  }
}

看到你如何比较两个相似的代码,你可能不小心在两者之间写了一些东西:

if($result)
{
  mysql_fetch_assoc($result);
  while($data=mysql_fetch_assoc($result)){
    echo $data['realname'];
  }
}
于 2012-11-21T04:04:26.803 回答
0

$result = mysql_query($query = "SELECT realname FROM t_user");

if($result) { while($data=mysql_fetch_assoc($result)){ echo $data["realname"]; } }

$result = mysql_query($query = "SELECT realname FROM t_user");
 var_dump($data);die;

在浏览器中查看结果数组。上面的while循环应该可以工作。检查你的结果。

于 2012-11-21T04:04:59.840 回答