| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Проблемы с многократным mysql_fetch_array |
| Автор: Addmin 14.12.2010, 19:38 | ||||
| Здравствуйте! Вот такая проблема. Мне в двух разных местах страницы нужно сделать вывод из одного и того же запроса. Делаю так:
Вывод второго параметра не происходит! Программа вообще не входит во второй цикл while. Но если сделаю вот так (то есть ещё раз сделаю запрос к базе):
Все работает, как положено. Из-за чего такое? Я подумал, что помочь может функция reset(), но куда её не вставь - пишет, что её параметр "плохой" и массивом вовсе не является. Пожалуйста, подскажите, как быть в такой ситуации? |
| Автор: bars80080 14.12.2010, 20:08 |
ясен пень, ты ж уже сделал выборку. это как чтение файла: читаешь сначала по строчке в цикле функцией fgets, дочитываешь до конца, и всё EOF (конец файла). для повторного выбора - надо перевести указатель в начало как переводить указатель в начало mysql - не скажу, просто не знаю. а не знаю, потому что это не нужно, ибо можно было прекрасно все данные из запроса ещё при первой выборке занести в массив, и во втором случае прокручивать уже этот массив |
| Автор: Addmin 14.12.2010, 20:19 | ||||
Объясни, пожалуйста, как при первой выборке заносить в массив? То есть так: $result_2 = $result; Безрезультатно, массив пуст.
Я же работаю с массивом, а не с mysql, по логике (как мне представляется логичным) я мог просто сделать reset на "прокрученный" массив и получить точно такой же, какой и был в начале. Или что-то здесь совсем не так? Или MySQL'евский массив - просто значения из выборки, а никакой не настоящий массив? |
| Автор: Addmin 14.12.2010, 20:24 | ||
| mysql_data_seek($result,0) - возвернет ваш массив взад Спасибо за информацию о MySQL'евских массивах! Добавлено через 50 секунд
А как, как занести данные из выборки в массив? Добавлено через 3 минуты и 27 секунд И чем хуже просто вернуть указатель в выборке данных в начало? Добавлено через 3 минуты и 47 секунд Вопрос ещё для меня не решился |
| Автор: bars80080 14.12.2010, 20:31 | ||
в $result нету никаких массивов, там ресурс запроса. это как $fp в $fp = fopen();
Добавлено через 1 минуту и 9 секунд дополнительная работа с другим сервером - mysql. а так массив данных уже у тебя в памяти быстрого доступа |
| Автор: Addmin 14.12.2010, 20:44 |
| Ага... Большое спасибо! |