Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как воспользоваться результатами запроса в MySQL дважды?
 
 автор: ДацкыйКот   (19.08.2007 в 17:28)   письмо автору
 
 

В PHP-скрипте делаю запрос к MySQL функцией mysql_query(), получаю дескриптор запроса $query_colnum и с его помощью получаю ассоциативный массив:

while($qres_array1 = mysql_fetch_assoc($query_colnum)).


Использую массив по назначению.

А потом снова нужно воспользоваться этим массивом. И не получается

Что пробовал:
1. Обратиться к конкретным элементам, к примеру [6] в ассоциативном массиве не получается (задал даже тему здесь сейчас).

2. Создать массив отдельно и потом несколько раз обходить его в цикле while:

$qres_array1 = mysql_fetch_assoc($query_colnum);
while($qres_array1)


3. Как вариант случая 2, делал то же самое в цикле for, а не while

for($i = 0; $i < count($qres_array1); $i++)


4. Как вариант случая 3, уточнял массив:

for($i = 0; $i < count($qres_array1['field']); $i++)


5. Заново обратиться так же:

while($qres_array1 = mysql_fetch_assoc($query_colnum)).


6. Или в другой массив (№2) загнать:

while($qres_array2 = mysql_fetch_assoc($query_colnum)).


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

Как можно решить этот головняк? Не хочется перегружать БД запросами... Неужто теряется информация из ассоциативного массива, раз ее приходится заново доставать?

   
 
 автор: Trianon   (20.08.2007 в 00:52)   письмо автору
 
   для: ДацкыйКот   (19.08.2007 в 17:28)
 


for($rows=array(); $row = mysql_fetch_assoc($query); $rows[]=$row);

print_r($rows); 

   
 
 автор: cheops   (20.08.2007 в 10:44)   письмо автору
 
   для: ДацкыйКот   (19.08.2007 в 17:28)
 

Дескриптор результирующего запроса после прогона цикла установлен на последнюю строку, поэтому, чтобы воспользоваться результирующей таблицей по новой его следует установить в начало при помощи функции mysql_data_seek()
<?php
  mysql_data_seek
(0);
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования