【问题标题】:Looping Through SQL Results in PHP - Not getting Entire Array在 PHP 中循环遍历 SQL 结果 - 没有得到整个数组
【发布时间】:2012-03-03 20:14:21
【问题描述】:

我可能遗漏了一些简单的东西,但我似乎在这里被阻止了......我有一个 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] . " ";
}

此时,我只获得了数据库中的第一行,还有 3 行没有显示。非常感谢任何帮助。

【问题讨论】:

  • foreach($row as $r){echo $r['name']." ".$r['email'];} 例如

标签: php mysql for-loop


【解决方案1】:

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

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

}

但好的方法是遍历每一行,因为你只有三列

while($row = mysql_fetch_assoc($result))
{
   echo $row['name']." ";
   echo $row['email']." ";
}

【讨论】:

  • 谢谢 - 这得到了我的数组。现在我只需要弄清楚为什么我的循环/显示功能不能正常工作。
【解决方案2】:

循环遍历结果的一种常见方法是这样的:

$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
    print_r($row);
    // do stuff with $row
}

查看 PHP.net 上的示例和 cmets。你可以在那里找到你需要知道的一切。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多