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

时间:2011-08-15 22:33:41

标签: 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'";
    $result = mysql_query($sql, $cn) or
        die(mysql_error($cn));
    $row = mysql_fetch_assoc($result);
    $item_name = $row['item_name'];
    echo $item_name;
}

如果我在中间有额外的sql查询,而且我删除了行

,似乎查询只运行一次
$sql = "SELECT item_name FROM items_list WHERE id='$item_id'";

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

1 个答案:

答案 0 :(得分:4)

你正在重用你的$ result变量和$ row变量,它会抛弃你的循环。

尝试:

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