【问题标题】:PHP - Echo All Results From MySQL SELECT QueryPHP - 从 MySQL SELECT 查询中回显所有结果
【发布时间】:2013-12-28 10:29:09
【问题描述】:

我有一个执行 MySQL SELECT 查询的 PHP 脚本,我想将该查询中的每一行回显到页面。我已经尝试了多种方法来做到这一点,但似乎都没有奏效。下面提供了我想出的最合理的这些方法,但它也不起作用。

$result = $conn->query("SELECT count FROM countTable;") or trigger_error($conn->error);
$row = $result->fetch_array(MYSQL_BOTH);
$count = sizeof($row);
for($i = 0; $i <= $count; $i++)
{
    echo $row[$i];
}

上面提供的代码只打印查询结果的第一行。如何修改此代码以打印全部内容?

【问题讨论】:

  • @RobertRozas 代码已被编辑以包含 SQL 查询。
  • fetch_array() 只得到 1 行 - Fetch a result row as an associative, a numeric array, or both

标签: php mysql


【解决方案1】:

从 fetch_array 返回的数组是一行结果中的一组列。您的查询只有一列(即:“count”),因此数组的大小将始终为 1。多次调用 fetch_array 将一次返回每一行。

你想要的是这样的:

while ($row = $result->fetch_array(MYSQL_BOTH)) {
   echo $row[0];
}

*注意,我没有运行这个,所以可能有一些我忽略的小语法错误。

【讨论】:

  • 当我第一次尝试你的代码时,它只打印了第二行。出于好奇,我在表格中添加了第三行,现在它打印出第二行和第三行。它继续省略第一个。我正在研究一个潜在的解决方案。
  • 在 while 循环上方是否有 $row = $result->fetch_array(MYSQL_BOTH) 行?如果是这样,它会在 while 循环之前获取第一行。
  • 是的,这就是问题所在。我是一个 PHP 菜鸟,所以我犯了菜鸟错误。我不能投票给你的答案,但如果可以的话,我会的。恐怕绿色的复选标记是我能给你的最好的了。
  • 不用担心。我自己在这里问一个golang noob问题,并想我会四处寻找,看看是否有什么我可以回答的。干杯。
  • 我 ♥ StackOverflow,但问题是有待回答的问题对我来说都很难理解,而我理解的问题已经得到解答。跨度>
猜你喜欢
  • 1970-01-01
  • 2015-06-11
  • 2015-03-31
  • 1970-01-01
  • 2013-01-19
  • 2014-02-20
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
相关资源
最近更新 更多