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 に答える