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

时间:2015-04-16 08:28:59

标签: php mysql

$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];
    }

}

我写了这段代码,我无法找出为什么while循环不起作用。它正在执行if {...}但是“if”中的while循环不起作用

4 个答案:

答案 0 :(得分: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];
    }

}
希望这有效。

答案 1 :(得分:0)

你试着这样做吗?

  $sql="SELECT * FROM TABLE";
  $result = mysql_query($sql)
  if($result == true){
    while($rows = mysql_fetch_array($result)){
        echo $rows[0];//single row
     }
   }

OR而不是mysql_fetch_array把mysql_fetch_assoc Link

答案 2 :(得分:0)

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

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

如果没有工作,请尝试以下两件事: 1)在while循环中回显测试,看看会发生什么。 2)手动执行sql-statment并查看是否有行。

除此之外,您使用过时的旧mysql函数。你应该看看更新(和更安全)的函数,如mysqli或pdo。

答案 3 :(得分: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];
    }

}