数据库数组只返回一行

时间:2013-10-08 15:22:01

标签: php mysql arrays

我很抱歉我的懒惰头衔。我希望主持人可以改进它,这样数据库就不会被感染。

我收到了以下代码( forum.php );

<?php

$res = $db->query('
  SELECT *
  FROM forums_categories
  ORDER BY category_id
');

while ($row = $db->fetch_array($res)) {
  $categories = array(
    'ID'   => $row['category_id'],
    'NAME' => $row['category_name']
  );

  echo '<pre>';
  print_r($categories);
  echo '</pre>';
}

我得到了以下数据库结构;

|---------------|-------------------|
|  category_id  |  category_name    |
|---------------|-------------------|
|  1            | Example 1         |
|  2            | Example 2         |
|  3            | Example 3         |
|  4            | Example 4         |
|  5            | Example 5         |
|  6            | Example 6         |
|---------------|-------------------|

但是我的数组只返回1个值:

Array
(
    [ID] => 1
    [NAME] => Example 1
)

哦,如果有人想知道我$db->fetch_array的样子:

<?php

function fetch_array($result)
{
return mysql_fetch_assoc($result);
}

如何返回数组中的所有行?感谢您阅读并感谢您的回复!

1 个答案:

答案 0 :(得分:3)

您在每次迭代时覆盖了$categories的先前值

$categories[] = array(
    'ID'   => $row['category_id'],
    'NAME' => $row['category_name']
  );

您可能还想初始化一个空数组

$categories = array();
在循环之前

以避免警告。