Php 如何发送一个我不知道其名称的变量';我不知道在风景里?
我正在尝试使用codeigniter创建一个网站。数据库中有两个表。这些表格是类别(类别名称、类别Id)和项目(项目名称、类别Id)。现在,在我看来,我想在不同的表中显示不同类别的项目 到目前为止,我已经想到了这一点,但显然它不起作用。模型中的代码如下所示Php 如何发送一个我不知道其名称的变量';我不知道在风景里?,php,mysql,sql,codeigniter,Php,Mysql,Sql,Codeigniter,我正在尝试使用codeigniter创建一个网站。数据库中有两个表。这些表格是类别(类别名称、类别Id)和项目(项目名称、类别Id)。现在,在我看来,我想在不同的表中显示不同类别的项目 到目前为止,我已经想到了这一点,但显然它不起作用。模型中的代码如下所示 $query = 'select category_id as id, category_name as name from category;'; $result = $this->db->query($query);
$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): ?>
如果我了解您想要实现的目标,那么以下是您想要的: 改变
$data["{$d['id']}"] = $result->result_array();
致:
然后,在您看来,您只需像这样执行第二个foreach:
<?php foreach($c['items'] as $d): ?>
这样,您就可以使用一个已知键将项目添加到类别本身。不确定为什么需要知道视图的名称,因为它似乎正在执行。您有两个foreach语句,您在哪一个语句上出错?您是否尝试打印$category和$c以查找它们包含的内容?@captainpayalysis我在嵌套的foreach循环中出现错误。非常抱歉,我不理解您所说的“不确定为什么您需要知道视图的名称,因为它似乎正在执行”。我刚刚在这里把视图命名为view。在我的实际代码中,它被命名为其他名称。您的问题是:“如何在视图中发送一个我不知道名称的变量?”我不清楚为什么知道视图的名称与您的问题有关。
无效参数…
错误仅仅意味着foreach
没有收到数组。在将$data
数组发送到视图之前,请尝试找出其中的内容(例如var\u dump($data);die;
)。
<?php foreach($c['items'] as $d): ?>