Как использовать результат запроса несколько раз
$query=...;
$resultsaved=mysql_query($query, $db);
for($i=0;$i<100;$i++){
$result=$resultsaved;
while($rowarray = mysql_fetch_array($result, MYSQL_NUM)){
//do stuff depending on $i and $rowarray
}
}
Однако после первой итерации $ resultsaved уничтожается; есть ли более эффективный способ, чем $ result = mysql_query ($ query, $ db); сто раз
Вам не нужна временная переменная. Как документация около mysql_fetch_array
говорит:
Возвращает массив, который соответствует выбранной строке и перемещает
внутренний указатель данных впереди.
Итак, после цикла while вам нужно сбросить внутренний указатель с помощью mysql_data_seek
:
$query=...;
$result=mysql_query($query, $db);
for($i=0;$i<100;$i++){
while($rowarray = mysql_fetch_array($result, MYSQL_NUM)){
//do stuff depending on $i and $rowarray
}
mysql_data_seek($result, 0);
}
Других решений пока нет …