Можете ли вы повторно использовать набор результатов MySQL в PHP?

У меня есть набор результатов, который я извлекаю из большой базы данных:

$result = mysql_query($sql);

Я перебираю этот набор записей один раз, чтобы извлечь определенные биты данных и получить средние значения, используя while($row = mysql_fetch_array($result)), Позже на странице я хочу снова просмотреть этот набор записей и вывести все, но поскольку я использовал набор записей ранее, мой второй цикл ничего не возвращает.

Я наконец-то взломал это, просматривая второй идентичный набор записей ($result2 = mysql_query($sql);), но я ненавижу делать один и тот же вызов SQL дважды. В любом случае я могу перебрать один и тот же набор данных несколько раз?

2 ответа

Решение

Использование:

mysql_data_seek($result, 0);

Вы получаете это "бесплатно", так как оно уже буферизовано.

Как отдельное примечание, вы можете явно сделать небуферизованный запрос с mysql_unbuffered_query,

Используя SQL Cursors, вы можете получить этот подход

Другие вопросы по тегам