php while语句出现无限循环 如何解决?

我在操作数据库的过程中发现while语句出现无限循环的现象,应该如何解决,让数据库中的数据顺利提取出来?我的代码:<?php $con = mysql_connect('localhost','root','root');mysql_select_db('userweb');$sql = "select * from inf_userlogin,inf_usermain where inf_userlogin.username=inf_usermain.username";$result = mysql_query($sql);$sc = mysql_fetch_array($result);while($sc) {echo "用户名:".$sc['username']."  昵称:".$sc['usernc']."  真实姓名:".$sc['userzsname']."  财富值:".$sc['usermoney'];}?>有人可以看出来我哪里出错了吗?我在数据库中执行上面的SQL语句也没有错呀,输出4行8列数据。

尝试修改代码如下:

while($sc = mysql_fetch_array($result)) {
  echo "用户名:".$sc['username']."&nbsp;&nbsp;昵称:"
    .$sc['usernc']."&nbsp;&nbsp;真实姓名:".$sc['userzsname']
    ."&nbsp;&nbsp;财富值:".$sc['usermoney'];
}


提示说明: 


mysql_fetch_array() 函数的功能是:从数据库结果集中取得一行数据,并作为数组形式返回结果。


如果取得数据正确,返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。


你上面的代码中,取了一行记录,其后的 while 以其结果为循环条件,而这个循环条件在其后的循环体中,没有再次进行更新,所以会一直死循环。

追问

嗯,果然成功了。可是想请教一下为什么我上面的写法是错误的呢,朋友说我一直循环,没有跳出?

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-07-09
请注意,使用while这个最基本的循环,要记的跳出。
否则会一直循环到执行时间结束
其实跳出只需要加上 break;就可以了
这样while (expr){
statement
break;
}
这样就循环一次表就会跳出

php while语句出现无限循环 如何解决?
如果取得数据正确,返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。你上面的代码中,取了一行记录,其后的 while 以其结果为循环条件,而这个循环条件在其后的循环体中,没有再次进行更新,所以会一直死循环。

这段代码怎么出现了无限循环了,而且只读取一条数据,请高手指正下问题所...
你在while循环中直接使用mysql_query,那他循环一次就查询一次sql,而数据库光标每次都从头开始,估计这个循环会执行无限次。。。不死才怪 应该改成如下 rlue = mysql_query($sql);while($order = mysql_fetch_array($rlue)){ 这样才保证了只执行一次mysql_query ...

php中关于while循环的条件
首先 mysql_fetch_array是将结果集中 一行 转换为数组,同时将指针移到下一行。第一种你直接在循环外面执行后赋值给$rs,这样的话,$rs是一个固定的值:第一行数据,这样你下面的循环是个死循环,并且都是都一条数据。第二种,你把这个方法作为while循环的条件,那么每次循环的时候它返回的都是下一...

出现502 bad gatewaynginx\/1.10.1是什么原因
回答:遇到502问题,可以优先考虑按照以下两个步骤去解决。 1、查看当前的PHP FastCGI进程数是否够用: 复制代码 代码如下: netstat -anpo | grep "php-cgi" | wc -l 如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。 2、部分PHP程序的执行时间...

什么是while循环语句?
while(true)就是无限循环语句。因为括号中的条件为true,所以永远不会跳出循环,除非语句块中有break语句才都能跳出循环。while是计算机的一种基本循环模式。当满足条件时进入循环,进入循环后,当条件不满足时,执行完循环体内全部语句后再跳出(而不是立即跳出循环)。while语句的一般表达式为:while(...

PHP菜鸟问题.continue加在while哪里啊??
<?php i=0;while($i<10){ if($a=5)continue;echo $i;i++;} ?> 加了这个if语句之后,为什么不是循环5次就出来,反而出现死循环呢,因为这个语句会把$a的值改为五,使得无法达到10而停止循环。增加以后让它五次退出的语句应该是下面这样,你注意区别:if($a==5)continue;

我写一个php无限循环程序,然后运行,再关闭浏览器,程序继续在后台运行...
set_time_limit(0)\/\/无限超时 ignore_user_abort (true)\/\/忽略用户离去 while(1){ 你的代码 sleep(100)\/\/停顿100秒防止死循环耗资源 } 至於你的监控页面需要用ajax来实现防止其受被监控页影响 你可以百度一下(建议谷歌) ajax长轮询,这个可以实现你要的效果 这样可以实现後台执行的效果,但 ...

while使用示例
在其他编程语言中,如 C#,while 循环的基本形式是无限循环,直到遇到 break 语句来终止。例如:int i = 1;while (true){ Console.WriteLine("{0}", i++);} Java 中的 while 循环可以设置一个明确的退出条件,如 while(i < 60) 进行累加:int i = 1;do { i++;} while(i < 60);在...

如何让shell语句中的 while循环语句不等待一个php执行完就进行下一...
用SHELL子进程,...(\/usr\/local\/bin\/php a.php)...

strpos疑问,php高手进
你给我看看 while () 里的 表达式吧 ($pipeiwz=strpos($yuanma,$str1,$chaxunwz))!==false 这句话 你说的正确 确实 是 先赋值给 $pipeiwz 我觉得不是 这个代码的问题吧。--- if(($pipeiwz=strpos($yuanma,$str1,$chaxunwz))>=0)这个 当然 总是成立的啊,因为 strpos 找到了 返回...

相似回答