你好朋友我是Codeigniter的新手我没有经验任何项目我正在制作购物网站学习目的而不是真正的Project.When创建管理面板我能够使用循环获取类别和子类别树,但如何获取这些树形式下拉菜单中的类别。
Like this-
Electronics
->Phones
->Tablets
->Mobiles
->Computer
->Laptops
->Desktops
Furniture
->Tables
->Plastic Table
->Wooden Table
我的模特是: -
function getcategories($parent_id = 0) {
$categories = array();
$this->db->where('parentid',$parent_id);
$query = $this->db->get('categories');
$result = $query->result_array();
foreach ($result as $mainCategory) {
$category = array();
$category['id'] = $mainCategory['id'];
$category['categoryname'] = $mainCategory['categoryname'];
$category['parentid'] = $mainCategory['parentid'];
$category['sub_categories'] = $this->getcategories($category['id']);
$categories[$mainCategory['id']] = $category;
}
return $categories;
}
My Categories数组看起来像这样: -
Array
(
[category] => Array
(
[1] => Array
(
[id] => 1
[categoryname] => Electronics
[parentid] => 0
[sub_categories] => Array
(
[2] => Array
(
[id] => 2
[categoryname] => Smartphones
[parentid] => 1
[sub_categories] => Array
(
[4] => Array
(
[id] => 4
[categoryname] => Sony
[parentid] => 2
[sub_categories] => Array
(
)
)
)
)
[3] => Array
(
[id] => 3
[categoryname] => Televisions
[parentid] => 1
[sub_categories] => Array
(
)
)
)
)
)
)
我的数据库表看起来像这样: - it is my database table
答案 0 :(得分:0)
此代码有效:
function getcategories($parent_id = 0) {
$categories = array();
$category = array();
$subcategories = array();
$q = $this->db->get_where('categories', array('parent_id' => $parent_id));
$results = $q->result();
foreach ($results as $mainCat) {
$q2 = $this->db->get_where('categories', array('parent_id' => $mainCat->id));
$results2 = $q2->result();
foreach ($results2 as $key => $subCat) {
$subcategory['id'] = $subCat->id;
$subcategory['name'] = $subCat->name;
$subcategory['parentid'] = $subCat->parent_id;
$subcategories[$subCat->id] = $subcategory;
}
$category['id'] = $mainCat->id;
$category['name'] = $mainCat->name;
$category['parentid'] = $mainCat->parent_id;
$category['subcat'] = $subcategories;
$categories[$mainCat->id] = $category;
$subcategories='';
}
return $categories;
}