求教 FOREACH 嵌套中二级循环怎样避免重复读取?
我做了一个mysql数据表,用aa作表名称吧,有以下数据:id AID name
1 0 广东
2 1 广州
3 1 深圳
4 0 广西
5 4 梧州
6 4 桂林
7 0 福建
8 7 福州
9 7 夏门
当用以下代码读取时(在discuz中用的):
$result1=DB::query("select * from ".DB::table('aa')." where AID=0 order by id");
while($list1=DB::fetch($result1)){
$L1[]=$list1;
}
foreach($L1 as $vo1){
echo $vo1['name']."<br>";
$result2=DB::query("select * from ".DB::table('aa')." where AID=".$vo1['AID']." order by id");
while($list2=DB::fetch($result2)){
$L2[]=$list2;
}
foreach($L2 as $vo2){
echo " ".$vo2['name']."<br>";
}
}
}
本来想要的结果是:
广东
广州
深圳
广西
梧州
桂林
福建
福州
夏门
可实际读取出来的结果是:
广东
广州
深圳
广西
广州
深圳
梧州
桂林
福建
广州
深圳
梧州
桂林
福州
夏门
另外作了一次这样的调试:
把
$result2=DB::query("select * from ".DB::table('aa')." where AID=".$vo1['AID']." order by id");
改成:
$result2=DB::query("select * from ".DB::table('aa')." where AID=1 order by id");
其他不变,如果显示是:
广东
广州
深圳
广西
广州
深圳
广州
深圳
福建
广州
深圳
广州
深圳
广州
深圳
由此可以看出,第一层foreach是正常运行的,第二层foreach出现问题。
请问为什么会这样?如何才能得到本来想的结果?谢谢指教,衷心感谢!
[ 本帖最后由 zhuarji 于 2014-5-4 11:21 编辑 ]