Как повторно использовать результат запроса SQL в PHP? - PullRequest
2 голосов
/ 01 октября 2009

Я хотел бы выполнить различные операции с данными, возвращенными из одного SQL-запроса, что-то вроде этого:

$sql = "SELECT * FROM mandant";  
$res = pg_query($_db,$sql); 

while ($mandant_list = pg_fetch_object($res)) 
{          
  # do stuff
}

while ($mandant = pg_fetch_object($res))
{
  # do other stuff
}

Но это не работает. Первый цикл получает данные, второй - нет.

Можно ли повторно использовать результат, полученный из запроса, без повторного запуска? Если нет, то почему? Что происходит с переменной $ res?

Ответы [ 2 ]

3 голосов
/ 01 октября 2009

Да, вы можете «перемотать» ресурс результата с помощью pg_result_seek () .

0 голосов
/ 01 октября 2009

Возможно.

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

Вам нужно будет сделать 2 копии $ res, а затем запустить второй while() на втором $ res.

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