我的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 循环显示所有数据。为什么?是因为我的代码有误吗?
你展示的代码不可能表现出这个问题,所以逻辑解释是这样的:
$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'];
}
}
$result = mysql_query($query = "从t_user中选择真实姓名");
if($result) { while($data=mysql_fetch_assoc($result)){ 回声$data["真实姓名"]; } }
$result = mysql_query($query = "SELECT realname FROM t_user");
var_dump($data);die;
在浏览器中查看结果数组。 上面的 while 循环应该可以工作。 检查您的结果。