Php 如何在Codeigniter的视图中使用两个表数据
我有两个表,第一个表是关于主题名,第二个表显示子主题。我想从第一个表中显示主题名,然后搜索相应的子主题,并在视图中显示,依此类推,直到在第一个表中找到主题名。但问题是我只能在视图中获取一个表数据,即主主题表。我不知道如何获得这两个表的完整数据并使用它 数据库结构: 型号:Php 如何在Codeigniter的视图中使用两个表数据,php,mysql,codeigniter,codeigniter-2,Php,Mysql,Codeigniter,Codeigniter 2,我有两个表,第一个表是关于主题名,第二个表显示子主题。我想从第一个表中显示主题名,然后搜索相应的子主题,并在视图中显示,依此类推,直到在第一个表中找到主题名。但问题是我只能在视图中获取一个表数据,即主主题表。我不知道如何获得这两个表的完整数据并使用它 数据库结构: 型号: 控制器: 视图: $row->topic\u name 所需输出: 尝试此查询。我们做两个表的左连接 $CI->db->select('*'); $CI->db->from('topic')
控制器:
视图:
$row->topic\u name
所需输出:
尝试此查询。我们做两个表的左连接
$CI->db->select('*');
$CI->db->from('topic');
$CI->db->join('sub-topics', 'topic.id = sub-topics.sub_topic_id', 'left');
$query = $CI->db->get();
$result = $query->result();
您将在您的模型中得到结果。从模型返回此结果并在控制器中访问它。在控制器中打印返回结果后,您将了解如何渲染它,因为您已经完成了上述操作。您的控制器是完美的,您的模型是完美的,只需更改视图:
鉴于:
foreach ($query as $row)
{ ?>
<ul>
<li><?php echo $row['topic_name'];?>
<ul>
<?php $this->db->where('sub_topic_id',$row['id'])
$r = $this->db->get('subtopics');
if($r->num_rows()>0)
{
foreach ($r -> result_array() as $row) {
$data1[] = $row;
}
}
foreach($data1 as $sub){?>
//print <li><?php echo $sub['subtopic_name']?></li>
<? }?>
</ul>
</li>
<? }?>
</ul>
foreach($queryas$row)
{ ?>
-
//打印
对于每个主题,获取子主题,存储在数组中,并在视图中循环。您是否尝试过mysql join
?我认为这不能通过join来完成。@Niranjan N N Raju您可以通过示例告诉我或给我一个链接吗?请检查此链接,确保您相应地更改了数据库列名,@user3653474请检查我是否已编辑回答。@DeepParekh,因为他有所有的结果。他可以通过索引数组来准备自定义数组,主题如下key@sandeepsure谢谢你的回答,但是它给出了不同的输出,我的主主题将被显示,而不管它是否有子主题。@Deep Parekh在我的模型中,我只从一个表中检索数据,所以我的模型如何和控制器是否正确缺少某些内容。@user3653474您需要循环遍历每个记录,并使用主题id为其编制索引。
<?php
foreach ($query as $row) {
?>
<li> $row->topic_name </li>
<? } ?>
$CI->db->select('*');
$CI->db->from('topic');
$CI->db->join('sub-topics', 'topic.id = sub-topics.sub_topic_id', 'left');
$query = $CI->db->get();
$result = $query->result();
foreach ($query as $row)
{ ?>
<ul>
<li><?php echo $row['topic_name'];?>
<ul>
<?php $this->db->where('sub_topic_id',$row['id'])
$r = $this->db->get('subtopics');
if($r->num_rows()>0)
{
foreach ($r -> result_array() as $row) {
$data1[] = $row;
}
}
foreach($data1 as $sub){?>
//print <li><?php echo $sub['subtopic_name']?></li>
<? }?>
</ul>
</li>
<? }?>
</ul>