当前位置: 代码迷 >> PHP >> 菜鸟对while 的一点疑惑
  详细解决方案

菜鸟对while 的一点疑惑

热度:24   发布时间:2016-04-28 18:16:12.0
初学者对while 的一点疑惑
本帖最后由 yinjie_1984 于 2014-11-15 07:40:04 编辑
function dql($sql)
         {
             $res=$this->mysqli->query($sql);
             if(!empty($res))
             {
  
             while ($row=$res->fetch_row())
         
             return $row;
             $res->free_result();
             }else 
             {return null;}
            }
  我现在不明白他为什么只返回一条语句?查询到的结果有很多,while里面只要是真他就返回一条语句,可是为什么他只返回最后一条语句?
<?php
$a=20;
while($a<=30)
{echo $a;
$a++}
?>
上面这个和$row 有什么区别吗?不也是一次先判断在输出,然后接着判断在输出?最后直到条件不成立,就不输出了。可为什么$row 只输出一次?$row 的条件就是$res 里面没有记录了,他就不再循环了。。是不是我对while理解不对?
我一直理解为只要while条件里面为真就会循环一次代码块,可从$row里面好像是都循环完了才输出?

------解决思路----------------------
至少你的观察是很不仔细的
while ($row=$res->fetch_row())
   return $row;
只会返回第一条记录,而不是其他
  相关解决方案