【发布时间】:2013-03-30 16:09:28
【问题描述】:
我正在尝试使用 codeigniter 创建一个网站。我在数据库中有两个表。这些表是 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): ?>
【问题讨论】:
-
不知道为什么你需要知道视图的名称,因为它似乎无论如何都在执行。你有 2 个 foreach 语句,你在哪一个上得到错误?您是否尝试过在 $category 和 $c 上使用 print_r 来查找它们包含的内容?
-
@CaptainPayalytic 我在嵌套的 foreach 循环中有错误。
-
我真的很抱歉,我不明白你的意思是“不知道为什么你需要知道视图的名称,因为它似乎正在执行”。我只是在这里将视图命名为视图。在我的实际代码中,它被命名为别的东西。
-
您的问题是:“如何在我不知道名称的视图中发送变量?”我不清楚为什么知道视图的名称与您的问题相关。
-
Invalid argument...错误仅仅意味着foreach没有收到数组。在将$data数组发送到视图之前,请尝试找出其中的内容(例如var_dump($data);die;)。
标签: php mysql sql codeigniter