-2

codeigniter を使用して Web サイトを作成しようとしています。データベースに 2 つのテーブルがあります。これらのテーブルは、Category(Category Name, Category_Id) と Item(Item_Name, Category_id) です。さて、私の見解では、さまざまなカテゴリのさまざまなテーブルにアイテムを表示したいと考えています。

これまでのところ、私はこれを考え出しましたが、明らかに機能していません。モデル内のコードはこれです。

$query = 'select category_id as id, category_name as name from category;';
    $result = $this->db->query($query);
    $data['category'] = $result->result_array();
    foreach($data['category'] as $d)
    {
        $query = "select item_name as name from item where item_catagory_id = '{$d['id']}';";
        $result = $this->db->query($query);
        $data["{$d['id']}"] = $result->result_array();
    }
    $this->load->view('view', $data);

ビュー内のコードはこのようなものです。

<?php foreach($category as $c):?>
            <h2><?php echo $c['name']; ?></h2>
            <table>
                <tr>
                    <td>Item Name</td>
                </tr>
                <?php foreach($c['id'] as $d): ?>
                <tr>
                    <td><?php echo $d['name'];?></td>
                </tr>
                <?php endforeach;?>
            </table>
        <?php endforeach;?>

しかし、「 foreach() に無効な引数が指定されました」と表示されます。また、エラーが次の行にあることも示しています。

<?php foreach($c['id'] as $d): ?>
4

1 に答える 1

1

あなたが達成したいことを私が理解したら、あなたが望むものは次のとおりです。

変化する

$data["{$d['id']}"] = $result->result_array();

に:

$d['items'] = $result->result_array();

次に、ビューでは、次のように 2 番目の foreach を単純に実行します。

<?php foreach($c['items'] as $d): ?>

このようにして、既知のキーを使用してアイテムをカテゴリ自体に追加します。

于 2013-03-31T21:52:35.310 に答える