Здравствуйте! PHP: $positions = false; $q = $db->query ("SELECT * FROM `positions` WHERE `company_id` = '".$company_id."'"); if ($q) { if ($q->num_rows) { $positions = $q; } } Затем вызов цикла While от объекта "$positions": PHP: <?php if ($positions !== false) { ?> <select class="form-select" name="position" aria-label="Choose position"> <option selected>_POSITION</option> <?php while ($item = $positions->fetch_assoc ()) { ?> <option value="<?=$item['id']?>"><?=$item['title']?></option> <?php } ?> </select> <?php } ?> Тут всё работает как надо. Вот второй вызов, он ничем не отличается от первого: PHP: <?php if ($positions !== false) { ?> <form> <select class="form-select" name="position" aria-label="Choose position"> <option selected><?=$position?></option> <?php while ($item = $positions->fetch_assoc ()) { ?> <option value="<?=$item['id']?>"><?=$item['title']?></option> <?php } ?> </select> </form> <?php } else { ?> <?=$position?> <?php } ?> А вто он уже не отрабатывает. var_dump ($positions) как перед первым так и перед вторым вызовом показывает одинаковый результат. Если удалить первый вызов, то второй работает. Как так?
У объекта mysqli_result есть внутренний указатель, который нужно сбрасывать: https://gency.ru/comment/57