这个代码有了$row为什吗还要这个while里的循环?
最近看到一个管理系统的代码 部分如下: 
$number=$_POST['number'];$sql="select * from yuangong where number='$number'";
$result=mysql_query($sql,$conn) or die ("查询数据失败: ".mysql_error());
while($row=mysql_fetch_array($result)){
$psql="select * from yuangong where number='$row[number]'";
         $presult=mysql_query($psql,$conn);
$prow=mysql_fetch_array($presult);
$cresult=mysql_query("select * from yuangong where number='$number'",$conn);
$crow=mysql_fetch_array($cresult);
}
$row=mysql_fetch_array($result)
和$prow=mysql_fetch_array($presult);还有$crow=mysql_fetch_array($cresult);
有什么区别吗?
应该都是把$result结果集的一行作为数组赋给$row,那后面的while什么用啊?

解决方案 »

  1.   

    你打印一下不就知道了。
    print_r($prow);
    print_r($crow);至于while是适用于结果集有多行时。
      

  2.   

    打个比方
    $result是一碗面条
    mysql_fetch_array()的作用就是用筷子夹起一根面条
    $row自然是夹起的那一根面条你吃面条自然要如此重复的夹,直到碗空了(也就是mysql_fetch_array()返回false使得while循环停止)。
      

  3.   

    $result 结果集可能不止一行,$row指一行,用while当然是遍历结果集了,把它们都打印出来~~
      

  4.   

    $row, $prow,$crow都是mysql query返回的资源Resource,必须有while按指针循环里面Resource从而获得数据,你明白我说什么吗?
      

  5.   

    关健点在于mysql_fetch_array($res)
    是一次只取一次记录
    但跟据$res查询的条件来说多数情况下不止一条记录
    所以要循环查询(每查询一次指针自动向后移动一位)
    以上的两个语句都是相同的,放一个里面是简洁
    你了可以分开写,写成两个while一样的
    另外,不用while也可以,你得保证查询的结果只有一个,也就是说
    你最多需要一个结果,SQL语句最后可加个 limit 0,1
    若你想要的结果是多条数据,必须用while