第一写法:$sql="select * from table";$query=mysql_query($sql);while($row=mysql_fetch_array($query);){echo "输出";}第二写法:
$sql="select * from table";$query=mysql_query($sql);$row=mysql_fetch_array($query);while($row){echo "输出";}

解决方案 »

  1.   

    while($row=mysql_fetch_array($query) ),看$row=mysql_fetch_array($query)表达式的值是否为真,如果是则执行循环部分,接着返回到前面再检查$row=mysql_fetch_array($query)的值 如此循环。
    而第二个例子中$row它的值不会再变化,也就是要么从不执行循环体,要么永远执行下去。 
    你可能需要了解下mysql_fetch_array()的作用。
      

  2.   

    楼上正解。除了mysql_fetch_array();这个方法以外还可以调用mysql_fetch_object()方法来获取sql查询结果。具体用法就不在赘述了。百度一下上面很多
      

  3.   

    mysql_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false;我觉得第二种方法加上$row=mysql_fetch_array($query);就和第一种一样了。
    只是第一种看上去较第二种简洁!
      

  4.   


    while($row=mysql_fetch_array($query)){
    //mysql_fetch_array内部有资源的定位指针,每次调用指向下行数据.
    //由于是入口条件循环,然后就形成$row在每次判断时都是下行数据,由此可判断出是否到达数据尾端
    //第二个2楼说的差不多.
      

  5.   

    第一种写法貌似语法错误(while表达式里多了一个分号);第二种写法貌似死循环。
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)