两者有什么区别
$a=mysql_query($sql,$conn);
$b=mysql_fetch_array($a);
while($b)
和$a=mysql_query($sql,$conn);
while($b=mysql_fetch_array($a))
什么区别?
为什么结果不一样 上面一个无线循环直接到浏览器崩溃 下面一个就OK

解决方案 »

  1.   

    第一个只是执行一次 mysql_fetch_array,while 判断条件 b 的值永远不变,死循环第二个每次循环都要先执行 mysql_fetch_array,b 的值是每次获取的值,直到 mysql_fetch_array 返回空为止结束循环
      

  2.   

    第一个相当while(true)
    当$b有数据赋值人时候。
      

  3.   

    楼主你首先要搞明白这个函数mysql_fetch_array():每次从结果集中取一条记录,然后指针下移,知道取到最后取不出来了返回false。也就是说这个函数隐含这while的循环控制条件。你的第一种做法,是取一条记录赋值给$b这样$b永远是真。因此就成死循环了。
      

  4.   

    $i=1;
    while($i<5)

    while(($i++)<5)的区别
      

  5.   

    对于第一种情况楼主在while循环的最后再加一句$b=mysql_fetch_array($a);重新赋值一下也是可以的
      

  6.   

    其实这个问题就想当于 第一个while(true)  他是永远成立的。所以会执行死循环
      

  7.   


    UP,要想循环打印结果集就用foreach
      

  8.   

    你这不废话吗,第一个$B的值永远为TRUE,不崩溃就见鬼了
    $B=mysql_fetch_array($a)是每次调用,B的值都会往下一个指针走,走到最后当然没值了就是空,跳出循环
      

  9.   

    while(){} 括号里面是判断条件 如果是‘真’执行花括号里面的语句,如果是'假'退出循环mysql_query() 这个函数如果执行成功 返回一个资源 失败返回假 如果是资源肯定是真 你放在()里面肯定永远是真 所以死循环 mysql_fetch_array() 一次从数据库取一条数据 到最后取不到了就返回假 退出循环
      

  10.   

    上面的肯定是死循环,这相当于一个迭代器,需要每次while 都要执行的。
      

  11.   

    $i = 1;
    while($i)和while($i++ < 5);
      

  12.   

    Ajax+PHP程序设计实战详解.rar.td.cfg