PHP语句:while($ row = mysql_fetch_array($ query))

时间:2013-01-06 13:59:26

标签: php mysql while-loop

我很难理解

的用法
while($row = mysql_fetch_array($query))

显示变量“$ query”中数据库的某些元素。 而且,我不明白函数“mysql_fetch_array()”传递给变量“$ row”的是什么。 我的猜测是只给出了“$ query”中数据库记录的一个记录(或行),但该函数如何知道哪一行?

我会尝试用一个例子来解释自己。

假设变量$ query中有3条记录,有两个字段(比如“id”和“name”)。 第一个变量$ row由第一个元素填充(比如id = 1,name = antonio),然后一些代码允许我显示或操作“1”和“antonio”,然后代码结束,while开始试。

现在我假设给变量“row”的是第二个元素,但是函数如何知道必须返回第二个元素(而不是第一个元素或第三个元素)?我的意思是,我不在任何地方提供这些信息......

2 个答案:

答案 0 :(得分:2)

如果您将语句$row = mysql_fetch_array()作为while循环的条件语句,您将完成两件事:

  1. 每次while循环检查条件语句时,您都会获得一行新的MySQL信息。

  2. 当没有更多行时,该函数将返回FALSE,导致while循环停止!

答案 1 :(得分:1)

变量$ query是一种资源,因此具有某种内部“行计数器”。每次调用mysql_fetch_array()或其变体时,此计数器都会递增。因此,每次调用此函数mysql_fetch_array时,都会得到下一行。当收到最后一行,并再次调用它时,它返回false。由于while循环的工作方式,你可以摆脱这个循环。