$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 () … в любом случае, я предпочитаю загружать результат в массив.