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