$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信息进行两次查询。
答案 0 :(得分:11)
调用mysql_fetch_assoc()
检索下一行(即,您尚未检索的下一行)。检索完所有行后,它会返回false
。所以,一旦你完成了第一个循环,你已经检索了所有行,你每次都会回来false
!
如果您需要重复使用两次相同的数据,那么如何将它全部放入数组?
$rows = array();
while($row = mysql_fetch_assoc($affiliateID)){
$rows[] = $row;
}
现在,您可以根据需要多次迭代$rows
:
foreach($rows as $row) { ... }
答案 1 :(得分:7)
这不起作用,因为一旦你运行结果集一次,结果内部指针就在最后。要再次使用它,您需要在第二个循环之前使用mysql_data_seek将内部指针重置为结果集的开头。
答案 2 :(得分:1)
您可以使用mysql_data_seek($ affiliateID,0)寻找第一行...现在您可以再次执行mysql_fetch_assoc()...无论如何,我更喜欢将结果加载到数组中。