为了账号安全,请及时绑定邮箱和手机立即绑定

php while循环里面还能再套while循环吗

php while循环里面还能再套while循环吗

PHP
蓝山帝景 2019-06-07 11:06:40
<?php $sql=mysql_query("select * from web_class");$row=mysql_fetch_array($sql);foreach($row as $rowcunt){?><dl><dt><a href="<?php echo $row["web_classid"]?>" hidefocus="true"><?php echo $row["classname"]?></a></dt><dd><?php $sql=mysql_query("select * from web_smclass where class_id='".$row["web_classid"]."'");while($row=mysql_fetch_array($sql)){?><a href="<?php echo $row["smclass_id"]?>" hidefocus="true"><?php echo $row["smclass"]?></a><?php }?></dd></dl><?php }?>各位,帮我看看,php有什么方法能在这循环里面在做一个循环吗?这个是我代码,帮忙看看,谢谢
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

php的while循环里面是可以继续嵌套while循环的,例如:

1

2

3

4

5

6

while (/* 条件1 */) {

    // do....

    while (/* 条件2 */) {

        // do....

    }

}

一般的嵌套最好不要超过三层,这样不但会影响到代码的运行效率,还会降低代码的可读性。这样的代码,严格来说是不规范烦的。

 


查看完整回答
反对 回复 2019-06-08
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

能,但是你犯了一个常识性的错误
php是解释性语言
代码是从第一行开始运行到最后一行的!
换个说法,如果一个页面存在相同的两个变量
那么,下面的会覆盖上面的:
比如:
$a = 10;
$a = 123;
echo $a;
你说最后的结果是什么呢?总不会是10吧?
再看看你的代码,同理
你第一下循环
while( $row = ............){ //这有个变量$row了
接着你又 while( $row = ................//这又有一个变量$row了,那你自己想想,在第一次循环,并且嵌套的那个循环中的 $row是不是会覆盖父循环中的变量$row呢???

建议,php中,如果不是需要对变量重新赋值定义的话,变量名不要老是那几个转,应该区分开来,比如,大小写了,或者干脆换个名称了,以防冲突!


 


查看完整回答
反对 回复 2019-06-08
  • 2 回答
  • 0 关注
  • 1223 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信