Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: mysqli_result перебор, не извлекая
Однако, функция fetch_assoc() удаляет из результата каждую новую полученную строку. В описании функции так и написано: "Извлекает результирующий ряд..." а мне нужно, чтобы он не извлекался, а оставлялся на месте. То есть, нужно оставить $chapters в неизменном виде для дальнейшей обработки.
Вопрос: Как организовать перебор результата, не извлекая (не удаляя) из него данные?
3d_killer
Отправлено: 26 Января, 2017 - 18:53:42
Участник
Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011 Откуда: Ростов-на-Дону
Помог: 21 раз(а)
присвой результат переменной и ее перебирай циклом foreach
index
Отправлено: 26 Января, 2017 - 19:25:56
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Янв. 2017
Помог: 0 раз(а)
3d_killer пишет:
присвой результат переменной и ее перебирай циклом foreach
Это два раза придётся перебирать, тратить время и память. Неужели нет способа работать напрямую с mysqli_result без удаления?
3d_killer
Отправлено: 26 Января, 2017 - 20:54:04
Участник
Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011 Откуда: Ростов-на-Дону
Это понятно, спасибо.
Но для меня всё-таки важно избежать дополнительных затрат памяти и процессорного времени. Поэтому вопрос остаётся в силе: Есть ли способ напрямую работать с mysqli_result, не нарушая его целостность?
T1grOK
Отправлено: 27 Января, 2017 - 09:57:10
Частый гость
Покинул форум
Сообщений всего: 129
Дата рег-ции: Июнь 2013
Помог: 7 раз(а)
index пишет:
Однако, функция fetch_assoc() удаляет из результата каждую новую полученную строку
С чего вы это взяли, fetch_assoc просто передвигает указатель, на который можно повлиять
Данные выводятся два раза, значит после первого прохода не удаляются, остаются на своих местах, как мне и нужно. Выходит, первый тест я сделал неправильно. Моя ошибка, прошу прощения за дезинформацию.
Спасибо за помощь, T1grOK.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.