在PHP中循环SQL结果 - 没有获得整个数组

nic*_*ius 2 php mysql for-loop

我可能错过了一些简单的东西,但我似乎在这里被阻止了...我有一个带有两个表的MySQL数据库,每个表有几行.所以目标是查询数据库并在表中显示结果,所以我这样开始:

$query = "SELECT name, email, phone FROM users";

然后我有这个PHP代码:

$result = mysql_query($query);

然后,我使用它来获取数组:

$row = mysql_fetch_array($result);

此时,我想我可以简单地遍历$row数组并在表格中显示结果.我已经有了一个函数来循环和显示表,但不幸的是,在它进入函数之前,数组似乎是不完整的.

要解决这个问题,我使用这个:

for ($i = 0; $i < count($row); $i++) {
    echo $row[$i] . " ";
}
Run Code Online (Sandbox Code Playgroud)

此时,我只获取数据库中的第一行,还有其他3个未显示.非常感谢任何帮助.

Gau*_*rav 14

您需要使用以下内容,因为如果mysql_fetch_array在循环外部调用,则只返回第一行中所有元素的数组.通过将行设置为mysql_fetch_array每次循环经过时返回的新行,您将遍历每一行,而不是实际在行内部的行.

while($row = mysql_fetch_array($result))
{
   // This will loop through each row, now use your loop here

}
Run Code Online (Sandbox Code Playgroud)

但好方法是迭代每一行,因为你只有三列

while($row = mysql_fetch_assoc($result))
{
   echo $row['name']." ";
   echo $row['email']." ";
}
Run Code Online (Sandbox Code Playgroud)