我正在尝试使用codeigniter显示和列出数据库中每个类别的数据。
表格结构:
类别:id_cat,name_cat
子类别:id_subcat,id_cat,name_subcat
我希望输出如下:
但是,当我运行我的代码时,它显示如下:
我的代码:
控制器
$this->data['get_category'] = $this->Category_model->get_all_sidebar();
$this->data['get_subcat'] = $this->Subcategory_model->get_all_sidebar();
$this->load->view('front/body', $this->data);
模型
分类:
public function get_all_sidebar()
{
return $this->db->get($this->table)->result();
}
子类别:
public function get_all_sidebar()
{
$this->db->select('*');
$this->db->join('category', 'category.id_cat = subcategory.id_cat');
$this->db->order_by('id_subcat', 'ASC');
return $this->db->get('subcategory')->result();
}
查看
<?php
echo '<ul class="category">';
foreach($get_category as $category)
{
echo "<li>$category->name_cat</li>";
echo "<ul>";
foreach($get_subcat as $subcat)
{
echo "<li>$subcat->name_subcat</li>";
}
echo "</ul>";
}
echo "</ul>";
?>
任何帮助都会如此欣赏,谢谢
答案 0 :(得分:1)
试试这个
public function get_categories() {
$query = $this->db->get('category');
$return = array();
foreach ($query->result() as $category) {
$return[$category->id_cat] = $category;
$return[$category->id_cat]->subs = $this->get_sub_categories($category->id_cat);
} return $return;
}
public function get_sub_categories($category_id) {
$this->db->where('id_cat', $category_id);
$query = $this->db->get('subcategory');
return $query->result();
}
然后在您的控制器中
$data['categories'] = $this->Category_model->get_categories();
$this->load->view('front/body', $data);
并像这样使用
<ul class="category">
<?php foreach ($categories as $category) {
?> <li><?php echo $category->name; ?> <?php
if (!empty($category->subs)) {
echo '<ul>';
foreach ($category->subs as $sub) {
echo '<li>' . $sub->name . '</li>';
} echo '</ul>';
}
?> </li> <?php } ?> </ul>