Несколько циклов PHP WHILE с использованием одного и того же запроса

$query1 = "SELECT * FROM idevaff_affiliates"; $affiliateID = mysql_query($query1) or die(mysql_error()); 

Это мой запрос выше – я хотел бы использовать его для двух циклов WHILE

Первый в разделе заголовка – настройка jquery

 while($row = mysql_fetch_assoc($affiliateID)){ } 

Второй используется в цикле while в теле

 while($row = mysql_fetch_assoc($affiliateID)){ } 

Почему я не могу заставить его работать? – Я получил его работу, но должен был сделать два запроса, используя одну и ту же информацию SELECT, используя две разные переменные.

Вызов mysql_fetch_assoc() возвращает следующую строку (т. mysql_fetch_assoc() Следующую, которую вы еще не получили). Получив все строки, он возвращает false . Итак, как только вы пройдете этот первый цикл, вы восстановили все строки, и все, что вы вернетесь, каждый раз является false !

Если вам нужно дважды использовать одни и те же данные, как насчет того, чтобы поместить все это в массив?

 $rows = array(); while($row = mysql_fetch_assoc($affiliateID)){ $rows[] = $row; } 

Теперь вы можете перебирать $rows столько раз, сколько хотите:

 foreach($rows as $row) { ... } 

Это не работает, так как один раз вы запускаете результирующий набор, внутренний указатель результатов заканчивается. Чтобы снова использовать его, вам нужно использовать mysql_data_seek перед вторым циклом, чтобы сбросить внутренний указатель на начало набора результатов.

Вы можете искать первую строку … используя mysql_data_seek ($ affiliateID, 0), теперь вы можете снова выполнить mysql_fetch_assoc () … в любом случае, я предпочитаю загружать результат в массив.