【发布时间】:2012-06-25 17:02:09
【问题描述】:
我测试了循环嵌套的 While 语句,所以:
$count1 = 0;
while ($count1 < 3) {
$count1++;
$count2 = 0;
echo "count1: ".$count1."<br />";
while ($count2 < 3) {
$count2++;
echo "count2: ".$count2."<br />";
}
}
这很有效(每次循环 3 次)结果:
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 = array();然后,在第一个 while 循环结束时添加 reset($LN_Row);
-
@redskins80 @redskins80
$LN_Row只包含mysql_fetch_assoc传递的最后一个值...所以它不会填满$LN_Row除非你做这样的事情$LN_Row[] = mysql_fetch_assoc -
@Dexter 你说得对!我删除了我的答案。对不起。
-
立即停止使用 mySQL_* 扩展。它们正在被弃用。使用 PDO 或 I 扩展。
-
别担心,@Jeremy 现在可能正在睡觉,他没有回应。
标签: php mysql while-loop