猿问

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

<?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有什么方法能在这循环里面在做一个循环吗?这个是我代码,帮忙看看,谢谢

蓝山帝景
浏览 1224回答 2
2回答

犯罪嫌疑人X

php的while循环里面是可以继续嵌套while循环的,例如:123456while&nbsp;(/*&nbsp;条件1&nbsp;*/)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do....&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(/*&nbsp;条件2&nbsp;*/)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do....&nbsp;&nbsp;&nbsp;&nbsp;}}一般的嵌套最好不要超过三层,这样不但会影响到代码的运行效率,还会降低代码的可读性。这样的代码,严格来说是不规范烦的。&nbsp;

繁星淼淼

能,但是你犯了一个常识性的错误php是解释性语言代码是从第一行开始运行到最后一行的!换个说法,如果一个页面存在相同的两个变量那么,下面的会覆盖上面的:比如:$a = 10;$a = 123;echo $a;你说最后的结果是什么呢?总不会是10吧?再看看你的代码,同理你第一下循环while( $row = ............){ //这有个变量$row了接着你又 while( $row = ................//这又有一个变量$row了,那你自己想想,在第一次循环,并且嵌套的那个循环中的 $row是不是会覆盖父循环中的变量$row呢???建议,php中,如果不是需要对变量重新赋值定义的话,变量名不要老是那几个转,应该区分开来,比如,大小写了,或者干脆换个名称了,以防冲突!&nbsp;
随时随地看视频慕课网APP
我要回答