多个PHP WHILE循环使用相同的查询

时间:2009-08-28 23:38:08

标签: php mysql loops

$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信息进行两次查询。

3 个答案:

答案 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()...无论如何,我更喜欢将结果加载到数组中。