新手求助:php从数据库取值问题mysql_fetch_assoc()函数的问题

这样写为什么会报这个错误而这样写却没有事这是什么原因??... 这样写为什么会报这个错误

而这样写却没有事

这是什么原因??
展开
 我来答
丙昂杰2N
2013-08-30 · TA获得超过118个赞
知道答主
回答量:96
采纳率:100%
帮助的人:40.4万
展开全部
mysql_fetch_assoc会从结果集中取出一行记录,而且资源指针会往下跳,
也就是说,再用mysql_fetch_assoc时,会取得新的一行记录,
以此类推,每执行一次mysql_fetch_assoc,取一新行,直到取出最后一行,
再取时,因为已经没有下一行,就会返回false。

综上所述:
在你的第一个例子中,$s_as=mysql_fetch_assoc($s_re),是取出结果集的第一行,第一行不为空吧,所以$s_as不等于false,所以,当你用while($s_as)时,相当于while(true),是一个死循环

第二个例子中,则不同,while($s_as=mysql_fetch_assoc($s_re)),每次取一行,当取到最后一行时,再没有一下行了,mysql_fetch_assoc就会返回flash,也就是$s_as=false,while循环就会停止
lsf26809347
2013-08-30
知道答主
回答量:27
采纳率:0%
帮助的人:24.1万
展开全部
$s_as = mysql_fetch_assoc($s_re);
这样只会取得$s_re 的第一个值,放在while里当条件,就相当于条件一直为真。形成了循环。就会超出内存限制。当然会报错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a19d193
2013-08-30 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1443万
展开全部
因为第一种写法你写错了造成死循环了,第一种应该是
$s_as = mysql_fetch_assoc($s_re);
while($s_as) {
$arr[] = $s_as;

$s_as = mysql_fetch_assoc($s_re); //你没写这行,所以$s_as永远不是false造成死循环。

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式