можно выполнить SQL-запрос внутри оператора while, который ссылается на другой SQL-запрос в своей области условий? - PullRequest
1 голос
/ 16 августа 2011

Мой код выглядит следующим образом

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 Ответ

4 голосов
/ 16 августа 2011

Вы повторно используете переменную $ 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...