【问题标题】:PHP - How do I run mysql query in while loop?PHP - 如何在 while 循环中运行 mysql 查询?
【发布时间】:2018-12-14 16:31:13
【问题描述】:

我最初的查询是从 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);

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

【问题讨论】:

  • 通常你最好使用join语句,这样你就不需要每次迭代都重复查询
  • 你混合mysql和mysqli
  • 使用预处理语句防止 SQL 注入
  • 如果将这两个 SQL 语句合并到一个查询中会更好。

标签: php mysql


【解决方案1】:

您在此处的循环内执行查询时覆盖变量$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>";
        }   
    }

【讨论】:

  • 谢谢伙计!!!就是这么简单,我看不到我的错误!!!你拯救了我的一天!!!
  • 也不要忘记检查上面的 cmets 以了解准备好的语句!
猜你喜欢
  • 1970-01-01
  • 2013-03-11
  • 2012-09-05
  • 1970-01-01
  • 2020-06-04
  • 2023-03-30
  • 2012-06-10
  • 2015-02-14
  • 2015-10-13
相关资源
最近更新 更多