2016-07-09 2 views
1

Поэтому в основном у меня есть следующий цикл для перебора строк базы данных:

while($row = $mysql->fetch_assoc()) 

Но мне нужно, чтобы получить доступ к строкам перед тем это петля, а также. Итак, я делаю это:

$inside = $mysql->fetch_assoc() 

и $ MySQLтеряет свои ряды. Когда он попадает в цикл while, он просто не вводит его, так как условие становится NULL.

Я попробовал следующий

while($row = $inside) 

, но это просто ждет, пока тайм-аут (петли на неопределенный срок).

Любая идея о том, как я мог бы выполнить это, воспользовавшись вышеуказанными требованиями? Большое спасибо за вашу помощь.

+0

Вы можете установить строку в массив в то время, а затем получить доступ к этому массиву позже, когда вам понадобятся строки во второй раз .. – chris85

ответ

0

Используйте $mysql->data_seek(0) прежде, чем сбросить счетчик строк на вашей второй итерации цикла. Это позволит вам снова перебирать строки. См. Пример this helpful post.

3

После этого:

while ($row = $mysql->fetch_assoc()) 

Внутренний указатель $resul находится в конце. Поэтому вы можете переместить его в начало снова:

$mysql->data_seek(0); 
while ($row = $mysql->fetch_assoc()) 

Все строки доступны снова.

Смежные вопросы