PHP-如何在while循环中运行mysql查询?

时间:2018-07-06 06:13:45

标签: php mysql

我最初的查询是从phpadmin表中选择数据并显示到表中。

$sql="select * from table";
$result=mysql_query($sql) or die(mysql_error());

while($myrow=MySQL_fetch_array($result,MYSQL_ASSOC))
{
    extract($myrow);
    echo "<td align='left' bgcolor='$bgclr'>".$myrow[0]."</td>";    
    echo "<td align='left' bgcolor='$bgclr'>".$myrow[1]."</td>";    
    echo "<td align='left' bgcolor='$bgclr'>".$myrow[2]."</td>";    
    echo "<td align='left' bgcolor='$bgclr'>".$myrow[3]."</td>";    
}


然后,我需要显示另一个使用$myrow[0]值的列,以执行另一个查询以获取该值。

$sql="select * from table";
$result=mysql_query($sql) or die(mysql_error());

while($myrow=MySQL_fetch_array($result,MYSQL_ASSOC))
{
    extract($myrow);

    $id = $myrow[0];
    $sql="select amount from table2 where id like '%$id%'";
    $result = mysqli_query($conn, $sql);

    echo "<td align='left' bgcolor='$bgclr'>".$myrow[0]."</td>";    
    echo "<td align='left' bgcolor='$bgclr'>".$myrow[1]."</td>";    
    echo "<td align='left' bgcolor='$bgclr'>".$myrow[2]."</td>";    
    echo "<td align='left' bgcolor='$bgclr'>".$myrow[3]."</td>";    

    while ($row=mysqli_fetch_row($result)) {

            echo "<td align='left' bgcolor='$bgclr'>".$row[0]."</td>";echo "</tr>";
        }   
    }


我的页面变成空白。错误是

  

$ result = mysqli_query($ conn,$ sql);

这是正确的方法还是应该怎么做?

1 个答案:

答案 0 :(得分:2)

您在此处在循环内执行查询时会覆盖变量$result

$sql="select amount from table2 where id like '%$id%'";
$result = mysqli_query($conn, $sql);

在循环内更改变量名$result,代码将类似于:

$sql="select amount from table2 where id like '%$id%'";
$result2 = mysqli_query($conn, $sql);

也可以在这里更新它:

while ($row=mysqli_fetch_row($result2)) {

            echo "<td align='left' bgcolor='$bgclr'>".$row[0]."</td>";echo "</tr>";
        }   
    }