0

我为我懒惰的标题感到抱歉。我希望版主可以改进它,这样数据库就不会被感染。

我得到以下代码(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);
}

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

4

1 回答 1

3

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

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

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

$categories = array();

在你的循环之前避免警告。

于 2013-10-08T15:22:50.983 回答