При работе с базами данных с использованием PHP и MySQL вы можете столкнуться с ситуацией, когда вам потребуется получить доступ к одним и тем же результатам запроса более одного раза используя функцию mysqli_fetch_array(). Однако попытка использовать mysqli_fetch_array() для одного и того же набора результатов несколько раз приведет к пустому выводу.
Это связано с тем, что mysqli_fetch_array() извлекает и перемещает указатель в наборе результатов. Таким образом, если вы попытаетесь снова получить тот же результат, данных для извлечения не останется.
Чтобы решить эту проблему, вам следует отделить обработку данных от вывода. Сначала извлеките все данные из базы данных и сохраните их в массиве:
$db_res = mysqli_query($db_link, $sql);
$data = [];
while ($row = mysqli_fetch_assoc($db_res)) {
$data[] = $row;
}
Примечание. Начиная с PHP 5.3, вместо явного цикла можно использовать fetch_all():
$db_res = mysqli_query($db_link, $sql);
$data = $db_res->fetch_all(MYSQLI_ASSOC);
После того как вы сохранили данные в массиве, вы можете перебирать их столько раз, сколько необходимо:
Верхняя строка :
foreach ($data as $row) {
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3