Многократный проход по одному запросу из mysql_query()?

LeRatO

Новичок
Многократный проход по одному запросу из mysql_query()?

Вкратце проблема...
Есть такой код:
PHP:
  // выбор данных из БД
     $link=mysql_connect("localhost:3306",$dbUser,$dbPass);
     mysql_select_db("dock3",$link);
  // некий select... 
      $sql="select * from db_news where date_news is not null order by date_news desc;";
      $result=mysql_query($sql,$link);
     while ($record=mysql_fetch_assoc($result)) {
        ......  некая обработка данных запроса .......
  }
  mysql_close($link);
?>
Возникает потребность второй раз пройтись по этому же Select-запросу, разумеется, без повторного его выполнения.

Реально ли это? Если да, то каким образом перевести указатель снова на первую "запись" запроса, поскольку после первого прохода указатель стоит в конце!

Заранее спасибо.
 

Фанат

oncle terrible
Команда форума
mysql_data_seek()
а вообще учись находить такие ответы в документации самостоятельно.
пробежать глазами список функций - дело одной минуты
 

ONK

Пассивист PHPСluba
Возникает потребность второй раз пройтись по этому же Select-запросу, разумеется, без повторного его выполнения.
Если у вас возникает такая потребность, значит вы что то делаете неправильно.
 

LeRatO

Новичок
Спасибо!
Сразу не вьехала... у меня документация без примеров, а то бы не приставала с дурацкими вопрсами.
Еще раз спасибо!
 

Фанат

oncle terrible
Команда форума
а при чем здесь примеры?
и разве бывает документация без примеров?
 

Popoff

popoff.donetsk.ua
Автор оригинала: Screjet
Почему это?
Или правильней два разных запроса делать?
Нет, просто сложно представить себе задачу, в которой нужно именно два раза по запросу ходить.... Если бы госпожа LeRatO привела бы пример такой задачи, в которой одного прохода не достаточно, то было бы так хорошо... :)
 

Фанат

oncle terrible
Команда форума
примеров вагон.
пишите больше - и обязательно столкнетесь.
Хотя, конечно, если больше двух раз надо проходить, то закачать надо в массив.
 

LeRatO

Новичок
Пример?
Проще простого...
Есть таблица, содержащая описание некой выходной формы-таблицы (<table></table>). В силу сцефики зачади проще положить описание в талицу, чем жестко зашивать форму в html-тэгах). Специфика в том, что форм выходных много и их строки причудливо пересекаются при выборе некоторых параметров. (если кому интересно, могу подробнее объяснить). Описание это содержит как боковик выходной таблицы (на экране), так и перечень ссылок на реальные поля реальных таблиц БД MySql.

Таким образом при первом проходе формируется sql-запрос с перечнем затребованных полей, при втором - на экран непосредственно выводится таблица с заменой имен полей на реальные значения из sql-запроса (см.первый этап).
 

Screjet

Новичок
LeRatO, прислушайся к фанату. В твоем случае лучше один раз загнать в массив (а лучше сразу в разные массивы), а потом из одного делаешь вывод, а из другого формируешь поля.

Хотя принципиального отличия нет. Просто принято культурно разделять разнотипные данные, в случае, если они выбраны из БД одним запросом.
 

ONK

Пассивист PHPСluba
LeRatO, если бы у вас была правильно спроектирована база данных, то вам потребовался бы всего 1 запрос. Формирование формы + заполнение её данными происходило бы за один проход по результату.
Двойной проход по одним и тем же данным всегда признак не оптимального алгоритма их обработки, о чём я и написал ранее.
 
Сверху