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

Kau*_*hon 6 php mysql loops

$query1 = "SELECT * FROM idevaff_affiliates";
$affiliateID = mysql_query($query1) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

这是我上面的查询 - 我想将它用于两个WHILE循环

第一个是在标题部分 - 设置jquery

while($row = mysql_fetch_assoc($affiliateID)){
}
Run Code Online (Sandbox Code Playgroud)

第二个用于身体的while循环

while($row = mysql_fetch_assoc($affiliateID)){
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能让它工作? - 我确实让它工作但是必须使用两个不同的变量使用相同的SELECT信息进行两次查询.

Vot*_*ple 11

调用mysql_fetch_assoc()检索下一行(即,您尚未检索的下一行).一旦检索完所有行,它就会返回false.所以,一旦你完成了第一个循环,你就已经检索了所有的行,而你false每次都会得到所有的行!

如果您需要重复使用两次相同的数据,那么如何将它全部放入数组?

$rows = array();
while($row = mysql_fetch_assoc($affiliateID)){ 
    $rows[] = $row;
}
Run Code Online (Sandbox Code Playgroud)

现在您可以根据需要迭代$rows多次:

foreach($rows as $row) { ... }
Run Code Online (Sandbox Code Playgroud)


Wiz*_*ard 7

这不起作用,因为一旦您运行结果集一次,结果内部指针就在结尾处.要再次使用它,您需要在第二个循环之前使用mysql_data_seek将内部指针重置为结果集的开头.