我只有一个table.all类别名称在一个字段和父类别字段下面。我的表结构如下
CREATE TABLE IF NOT EXISTS `jil_category` (
`ctg_id` int(11) NOT NULL AUTO_INCREMENT,
`ctg_name` varchar(255) NOT NULL,
`ctg_section` int(11) NOT NULL,
`ctg_details` text NOT NULL,
`ctg_status` int(11) NOT NULL,
`ctg_index` int(11) NOT NULL,
`ctg_parent` int(11) NOT NULL,
`ctg_image` varchar(300) NOT NULL,
`ctg_dated` int(11) NOT NULL,
`ctg_ipadd` varchar(30) NOT NULL,
`ctg_ldated` int(11) NOT NULL,
`ctg_lipadd` varchar(30) NOT NULL,
PRIMARY KEY (`ctg_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=196 ;
如果有人知道解决方案,那么请帮助
答案 0 :(得分:0)
你可以做到这一点。首先从表中选择不同的父类别。 使用foreach,您可以显示所有父类别。
在foreach循环中,在helper / controller中创建一个函数,将parent_cat_id传递给该函数,现在获取该特定类别的所有子cat。就像:getSubCategories($ parent_cat_id);
如果表中有一些子类别,该函数会返回数据,否则它不会返回任何内容。
如果您需要其他任何内容,请告诉我,如果是解决方案,请回答+1。
答案 1 :(得分:0)
我给你举个例子
function menu()
{
$menus = $this->db->get_where('jil_category', array('ctg_parent'=>0))->result();
$data = [];
foreach($menus as $menu)
{
$submenu = $this->db->get_where('jil_category',array('ctg_parent'=>$menu->ctg_id));
if($submenu->num_rows()>0)
$menu->submenu = $submenu->result();
else
$menu->submenu = [];
$data[] = $menu;
}
$menudata['menus'] =$data;
$this->load->view(index,$menudata);
}
在您的观看
foreach($menus as $menu)
{ ?>
<li><?php echo $menu->ctg_name;
if(!empty($menu->submenu)){ echo '<ul>';
foreach($menu->submenu as $submenu){ ?>
<li><?=$submenu->ctg_name?></li>
<?php } echo '</ul>'; }?>
</li>
<?php } ?>