Php 我是否可以在while语句中运行一个sql查询,该语句引用其条件区域中的另一个sql查询?

Php 我是否可以在while语句中运行一个sql查询,该语句引用其条件区域中的另一个sql查询?,php,sql,while-loop,Php,Sql,While Loop,我的代码如下 while ($row = mysql_fetch_assoc($result)) { $active_bid_ids = array_unique($row); $item_id = $active_bid_ids['item_id']; echo $item_id; echo '<br />'; $sql = "SELECT item_name FROM items_list WHERE id='$item_id'";

我的代码如下

while ($row = mysql_fetch_assoc($result)) {
    $active_bid_ids = array_unique($row);
    $item_id = $active_bid_ids['item_id'];
    echo $item_id;
    echo '<br />';
    $sql = "SELECT item_name FROM items_list WHERE id='$item_id'";
    $result = mysql_query($sql, $cn) or
        die(mysql_error($cn));
    $row = mysql_fetch_assoc($result);
    $item_name = $row['item_name'];
    echo $item_name;
}

while函数正常运行并返回许多结果。

您正在重用$result变量和$row变量,这会使循环中断

尝试:

while($row=mysql\u fetch\u assoc($result)){
$active\u bid\u id=array\u unique($row);
$item_id=$active_bid_id['item_id'];
echo$item_id;
回声“
”; $sql=“从项目列表中选择项目名称,其中id='$item\u id'; $innerresult=mysql\u查询($sql,$cn)或 die(mysql_错误($cn)); $innerrow=mysql\u fetch\u assoc($innerresult); $item_name=$innerrow['item_name']; echo$item_name; }
您正在重用$result变量和$row变量,而这两个变量正在脱离循环

尝试:

while($row=mysql\u fetch\u assoc($result)){
$active\u bid\u id=array\u unique($row);
$item_id=$active_bid_id['item_id'];
echo$item_id;
回声“
”; $sql=“从项目列表中选择项目名称,其中id='$item\u id'; $innerresult=mysql\u查询($sql,$cn)或 die(mysql_错误($cn)); $innerrow=mysql\u fetch\u assoc($innerresult); $item_name=$innerrow['item_name']; echo$item_name; }
您在某个地方犯了错误。但在循环中执行查询仍然不是一个好主意。您在某个地方犯了错误。但在循环中执行查询仍然不是一个好主意。最佳实践提示:参数化查询以避免潜在的安全漏洞,并在这种情况下通过以下连接实现所需的功能:
SELECT I.item\u name,A.active\u bids\u id来自active\u bids A.item\u id=I.id上的内部联接项目\u列表I
感谢您指出最佳做法。在我完成我的代码之前,我肯定会对此进行进一步的检查和研究。最佳实践提示:参数化查询以避免潜在的安全漏洞,并在这种情况下通过以下连接实现您想要的:
SELECT I.item\u name,A.active\u bids\u id来自active\u bids A.item\u id=I.id上的内部联接项目\u列表I
感谢您指出最佳做法。在我完成我的代码之前,我肯定会检查并研究更多。
$sql = "SELECT item_name FROM items_list WHERE id='$item_id'";
while ($row = mysql_fetch_assoc($result)) {
   $active_bid_ids = array_unique($row);
   $item_id = $active_bid_ids['item_id'];
   echo $item_id;
   echo '<br />';
   $sql = "SELECT item_name FROM items_list WHERE id='$item_id'";
   $innerresult = mysql_query($sql, $cn) or
      die(mysql_error($cn));
   $innerrow = mysql_fetch_assoc($innerresult);
   $item_name = $innerrow['item_name'];
   echo $item_name;
}