这个代码有了$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什么用啊?
最近看到一个管理系统的代码 部分如下:
$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什么用啊?
print_r($prow);
print_r($crow);至于while是适用于结果集有多行时。
$result是一碗面条
mysql_fetch_array()的作用就是用筷子夹起一根面条
$row自然是夹起的那一根面条你吃面条自然要如此重复的夹,直到碗空了(也就是mysql_fetch_array()返回false使得while循环停止)。
是一次只取一次记录
但跟据$res查询的条件来说多数情况下不止一条记录
所以要循环查询(每查询一次指针自动向后移动一位)
以上的两个语句都是相同的,放一个里面是简洁
你了可以分开写,写成两个while一样的
另外,不用while也可以,你得保证查询的结果只有一个,也就是说
你最多需要一个结果,SQL语句最后可加个 limit 0,1
若你想要的结果是多条数据,必须用while