我测试了嵌套While语句的循环:
$count1 = 0;
while ($count1 < 3) {
$count1++;
$count2 = 0;
echo "count1: ".$count1."<br />";
while ($count2 < 3) {
$count2++;
echo "count2: ".$count2."<br />";
}
}
这个可以完美运行(每次循环三次)并返回结果:
count1: 1
count2: 1
count2: 2
count2: 3
count1: 2
count2: 1
count2: 2
count2: 3
count1: 3
count2: 1
count2: 2
count2: 3
然后我尝试使用循环和 mysql_fetch_assoc 进行相同的操作($ContactsInterests 是一个两行的关联数组,$LatestNews 有50行),即:
$CI_count = 0;
while ($CI_Row = mysql_fetch_assoc($ContactsInterests)) { //loop thru interests
$CI_count++;
$LN_count = 0;
echo "CI_count: ".$CI_count."<br />";
while ($LN_Row = mysql_fetch_assoc($LatestNews)) { //loop thru news
$LN_count++;
echo "LN_count: ".$LN_count."<br />";
}
}
结果如下:
CI_count: 1
LN_count: 1
LN_count: 2
...
LN_count: 50
LN_count: 51
CI_count: 2
但是第二次迭代的 LN_count 在哪里呢?我不明白为什么 LN_count 没有第二次递增。
感谢您的帮助。
$LN_Row
只包含mysql_fetch_assoc
传递的最后一个值... 因此,除非您执行类似$LN_Row[] = mysql_fetch_assoc
的操作,否则它不会填充$LN_Row
。 - Dexter Huinda