PHP while循环。为什么这样做?

时间:2014-03-03 02:44:10

标签: php loops while-loop

我正在使用教程创建我的第一个php网站以供参考。我无法理解为什么以下有效:

while ($row = mysql_fetch_array($result)){
  echo $row[1]. " ".row[2]."<br/>";
}

具体来说,循环如何递增到下一行?

更新: 感谢所有打扰提供答案的人,包括那些恳求我接受RTM的人。我的问题不是理解while循环是如何工作的,而是我无法看到循环如何递增。 答案: 来自PHP文档,

mysql_fetch_array:返回与获取的行对应的数组,并向前移动内部数据指针

我现在看,一切都很好。

4 个答案:

答案 0 :(得分:2)

您可以将该代码重写为此等效代码:

$row = mysql_fetch_array($result); // fetch and advance
while ($row !== false) { // compare result against false
  echo $row[1]. " ".row[2]."<br/>";
  $row = mysql_fetch_array($result); // fetch and advance
}

赋值产生一个可以在条件中使用的值,尽管在括号中加上括号是个好习惯:

// fetch and advance, compare fetched result against false
while (($row = mysql_fetch_array($result)) !== false) {
  echo $row[1]. " ".row[2]."<br/>";
}

答案 1 :(得分:1)

mysql_fetch_array()将获取$ result并以数组的形式保存到$ row中。使用while循环,程序将从开头到结束循环数组中的数据。

顺便说一下,你的代码应该是

while ($row = mysql_fetch_array($result)){
    echo $row['someData1']. " ".row['someData2']."<br/>";
}

如果你想遍历索引,那么代码看起来就像下面一样,但它将打印单词Array,因为你将在“那个”特定索引中打印结果。

$indexCounter = 0;
while ($row = mysql_fetch_array($result)){
    echo $row[$indexCounter]."<br/>";
}

希望这有帮助!谢谢。

答案 2 :(得分:0)

mysql_fetch_array接受$ result的第一个元素然后是$ result有这个元素的元素...就像从牌组中取出卡片

答案 3 :(得分:0)

阅读PHP While文档。了解mysql_fetch_array()的作用及其运作方式可能也很有用。阅读完毕后,请不要再次使用mysql_*函数,因为它们已被弃用。相反,请使用mysqli_*PDO