Использование результатов запроса несколько раз

Как использовать результат запроса несколько раз

$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); сто раз

1

Решение

Вам не нужна временная переменная. Как документация около 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);
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]