while внутри while

Тема в разделе "PHP", создана пользователем cherkas, 18 июл 2019.

  1. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    451
    Симпатии:
    57
    Здравствуйте, подскажите пожалуйста, почему при написании так
    PHP:
    while (...) {
        ...
        
    $result mysqli_query($link$query);       
        while (
    $row $result->fetch_array()) {
            ...
        }
    }
    работает нормально, а при написании так
    PHP:
    $result mysqli_query($link$query);
    while (...) {
        ...
        while (
    $row $result->fetch_array()) {
            ...
        }
    }
    внутренний while отрабатывает только при первой итерации внешнего while, остальные итерации не отрабатывает

    как это исправить, чтобы не делать 150 000 одинаковых запросов к БД
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    зависит от того что ты оставил под ...
    и от условий в первом while тоже
     
  3. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    451
    Симпатии:
    57

    суть в том, что бы товары из прайса артикулы которых не встречаются в магазине сохранить в отдельный прайс.
     
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    потому что при второй итерации, в первом while $result->fetch_array() будет возвращать null/false или пустой массив. Зависит от того что возвращает fetch_array в данной, конкретной реализации.

    Т.е. идея такова, что нельзя из одного резалт сета дважды достать один и тот же row.

    прощё всего, собрать в массив всё из БД и потом поитерировать по csv