0

我很难理解

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”的是第二个元素,但是函数如何知道必须返回第二个元素(而不是第一个或第三个)?我的意思是,我不会在任何地方提供这些信息...

4

2 回答 2

2

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

  1. 您将获得一行新的 MySQL 信息,您可以在每次 while 循环检查其条件语句时打印出来。

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

于 2013-01-06T14:02:42.733 回答
1

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

于 2013-01-06T14:03:01.950 回答