Php 用于从数组中提取数据的while循环不起作用

Php 用于从数组中提取数据的while循环不起作用,php,mysql,Php,Mysql,我已经写了这段代码,我无法找出while循环不工作的原因。它正在执行if{…},但是if内的while循环不起作用用下面的代码更改代码 $sub_id=$_POST['sub_id']; $sql_unit_list="select link_id,unit,file_name from links where sub_id='$sub_id'"; $res_unit_list=mysql_query($sql_unit_list); if($res_unit_list) { whi

我已经写了这段代码,我无法找出while循环不工作的原因。它正在执行if{…},但是if内的while循环不起作用

用下面的代码更改代码

$sub_id=$_POST['sub_id'];
$sql_unit_list="select link_id,unit,file_name from links where sub_id='$sub_id'";
$res_unit_list=mysql_query($sql_unit_list);

if($res_unit_list)
{

    while($data_list=mysql_fetch_array(mysql_query($sql_unit_list)))
    {
        echo $data_list[0];
    }

}

希望这能奏效。

你试过这样做吗

$sub_id=$_POST['sub_id'];
$sql_unit_list="select link_id,unit,file_name from links where sub_id='$sub_id'";
$res_unit_list=mysql_query($sql_unit_list);

if($res_unit_list)
{

    while($data_list=mysql_fetch_array($res_unit_list))
    {
        echo $data_list[0];
    }

}

或者将mysql_fetch_数组放入mysql_fetch_assoc

重复查询。相反,您应该使用结果本身

  $sql="SELECT * FROM TABLE";
  $result = mysql_query($sql)
  if($result == true){
    while($rows = mysql_fetch_array($result)){
        echo $rows[0];//single row
     }
   }
如果它不起作用,请尝试以下两种方法: 1在while循环中回显一个测试,看看会发生什么。 2手动执行sql语句,查看是否得到行


除此之外,您还可以使用过时的旧mysql函数。您应该研究一下更新、更安全的函数,如mysqli或pdo。

代码语法不正确

试试这个

while($data_list=mysql_fetch_array($res_unit_list)){...

var_dump$data_列表;并查看得到的结果..是否在phpmyadmin向导中手动运行查询?它是否会抛出一些记录?是的,查询很好
$sub_id=$_POST['sub_id'];
$sql_unit_list="select link_id,unit,file_name from links where sub_id='$sub_id'";
$res_unit_list=mysql_query($sql_unit_list);

if($res_unit_list)
{

    while($data_list=mysql_fetch_array($res_unit_list))
    {
        echo $data_list[0];
    }

}