如何在codeigniter中获取父类别的所有子孙类别?

Hri*_*jha 5 php codeigniter parent-child categories

我想让父类别的所有子孙类别达到任何级别.我的表结构是这样的. 在此输入图像描述

任何人都可以建议我如何获得所有的儿童类别(即三星和S3的手机类别).

mac*_*ict 5

你需要递归.创建这样的函数(假设您使用活动记录):

function getCategoriesByParentId($category_id) {
    $category_data = array();

    $category_query = $this->db->query("SELECT * FROM categories WHERE parent_category = '" . (int)$category_id . "'");

    foreach ($category_query->result() as $category) {
        $category_data[] = array(
            'category_id' => $category->category_id,
            'category_name' => $category->category_name,
            'category_alias' => $category->category_alias,
            'parent_category' => $category->parent_category
        );

        $children = getCategoriesByParentId($category->category_id);

        if ($children) {
            $category_data = array_merge($children, $category_data);
        }           
    }

    return $category_data;
}
Run Code Online (Sandbox Code Playgroud)

并称之为:

$all_categories = getCategoriesByParentId(0);
Run Code Online (Sandbox Code Playgroud)

输出将如下所示:

Array
(
    [0] => Array
        (
            [category_id] => 14
            [category_name] => s3
            [category_alias] => s3
            [parent_category] => 13
        )

    [1] => Array
        (
            [category_id] => 13
            [category_name] => Samsung
            [category_alias] => samsung
            [parent_category] => 12
        )

    [2] => Array
        (
            [category_id] => 12
            [category_name] => Phone
            [category_alias] => phone
            [parent_category] => 0
        )

)
Run Code Online (Sandbox Code Playgroud)

有关详细信息OpenCart 1.5.4,请参阅ModelCatalogCategory下面的课程catalog\model\catalog\category.php.