php中关于while循环的条件

写法一:<?php……$rs=mysql_fetch_array($query);while($rs){?><p><?phpecho$rs['content']?></p... 写法一:
<?php
……

$rs=mysql_fetch_array($query);

while($rs){
?>
<p><?php echo $rs['content'] ?></p>
<?php } ?>
运行结果:只读取出数据库中的一条记录,并且不断重复读取这条记录。

写法二:
<?php
……

while($rs=mysql_fetch_array($query)){
?>
<p><?php echo $rs['title'] ?></p>
<?php } ?>
运行结果:取出数据库中所有的记录,没有重复。

求解:为什么这两种看似一样的写法,会造成截然不同的结果?
展开
 我来答
yu641150278
2013-09-29 · TA获得超过1069个赞
知道小有建树答主
回答量:637
采纳率:100%
帮助的人:289万
展开全部
首先 mysql_fetch_array是将结果集中 一行 转换为数组,同时将指针移到下一行。
第一种你直接在循环外面执行后赋值给$rs,这样的话,$rs是一个固定的值:第一行数据,这样你下面的循环是个死循环,并且都是都一条数据。
第二种,你把这个方法作为while循环的条件,那么每次循环的时候它返回的都是下一行的数据,并且当到了最后一张之后循环就结束了,不会陷入死循环。
dingdang0702
2013-09-29 · TA获得超过384个赞
知道小有建树答主
回答量:375
采纳率:100%
帮助的人:240万
展开全部
写法一:
<?php
……

$rs=mysql_fetch_array($query);

while($rs){
?>
<p><?php echo $rs['content'] ?></p>
<?php } ?>
写法二等价:
<?php
……
$rs=mysql_fetch_array($query);
while($rs){
?>
<p><?php echo $rs['title'] ?></p>
$rs=mysql_fetch_array($query);
<?php } ?>
能看出区别吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-29
展开全部
写法一, $rs=mysql_fetch_array($query)只执行了一次,$rs为非空数组,While死循环

写法二,$rs=mysql_fetch_array($query)在每次While判断时执行,当所有记录行都取完后,mysql_fetch_array返回FALSE,While循环结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敂天
2013-09-29
知道答主
回答量:3
采纳率:0%
帮助的人:2.8万
展开全部
mysql_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有
返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。你的$rs得到的是一个数组,while($rs)你判定的是rs是不是false无限循环你的while,得到的都是第一行,至于第二个为什么行我也不知道,不过你第一个用foreach试试看能不能都输出来!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IT互联天下
2015-05-20 · 知道合伙人软件行家
IT互联天下
知道合伙人软件行家
采纳数:1437 获赞数:5161
PHP开发工程师

向TA提问 私信TA
展开全部

PHP :while 循环, 只要指定条件为真,则循环代码块!

示例:

<?php
$i=8;
while($i<10){
echo $i;
echo "<br/>";
$i--;
}
?>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式