Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-为什么WHILE和DO-WHILE之间的循环在mysql抓取中给出不同的结果?_Php_Mysql - Fatal编程技术网

PHP-为什么WHILE和DO-WHILE之间的循环在mysql抓取中给出不同的结果?

PHP-为什么WHILE和DO-WHILE之间的循环在mysql抓取中给出不同的结果?,php,mysql,Php,Mysql,我在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_f

我在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\u query($query=“SELECT realname FROM t\u user”)

if($result){while($data=mysql\u fetch\u assoc($result)){ echo$data[“realname”];}


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

错误可能在其他地方。@Irelephant:如何找到原因?浏览器中没有显示警告错误?@DrewPierce:但我不想使用PDO:(var_dump($data)结果:bool(false)尝试低于$data=mysql\u fetch\u assoc($result);var_dump($data);die;两条记录似乎都不是:(,是的,之前可能有命令mysql\u fetch\u assoc($result)。
$result = mysql_query($query = "SELECT realname FROM t_user");
 var_dump($data);die;