Intereting Posts

упорядочить категорию и подкатегорию в php и Codeigniter

Здесь у меня есть таблица базы данных, а имя моей таблицы – это категория, в которой я храню свою категорию данных и подкатегорию в столбце категории Здесь у меня есть таблица базы данных, а мое имя таблицы - это категория, в которой я храню свою категорию данных и подкатегорию в столбце категории

Я хочу получить эти данные, как этот формат в ul li для этого кода, который я пытаюсь организовать, но я не получаю данные совершенно так, пожалуйста, помогите мне упорядочить мой код в этом формате. Я хочу получить эти данные, такие как этот формат в ul li для этого кода, который я пытаюсь упорядочить в этом формате, но я не получаю данные совершенно как этот формат, пожалуйста, помогите мне упорядочить мой код в этом формате.

Вы можете попробовать это

//to select categories $this ->db-> select(); $this->db->from('category'); $this->db->where('pid',0); $query = $this->db->get(); $categories = array(); $i=0; foreach ($query->result_array() as $row) { //put all category names to $categories array $categories[$i] =$row['category']; $i++; } //to select relevant sub categories $sub_categories=array(); foreach ($categories as $category) { $this ->db-> select(); $this->db->from('category'); $this->db->like('category', $category, 'after'); $query = $this->db->get(); $j=0; foreach ($query->result_array() as $row) { //put all sub categories names to $sub_categories array $sub_categories[$category][$j] =$row['category']; $j++; } } $return_data['categories']=$categories; $return_data['sub_categories']=$sub_categories; return $return_data; 

Этот код полезен для получения n-го уровня категории, массива подкатегорий

контроллер:

 $this->load->model('getmenu_model'); function get_menu() { $ci = & get_instance(); $ci->load->model("getmenu_model"); $menu['menu'] = $ci->getmenu_model->get_menu(); $echo = echoMenu($menu['menu']); //$echo.= "<li><a href=" . site_url('loose_diamond').">Loose Diamonds</a></li>"; $menu['print_menu']=$echo; print_r($menu); //return $menu; } function echoMenu($arr) { $ci = & get_instance(); $echo = ""; //$echo.="<ul>"; foreach ($arr as $subArr) { if (!empty($subArr['sub_menu'])) { $echo.= "<li>"; $echo.= "<a href=" . site_url('product_display/index') . "/" . $subArr['id'] . ">" . $subArr['name'] . "</a>"; if ($subArr['sub_menu']) { $echo.= "<ul>"; $echo .=echoMenu($subArr['sub_menu']); $echo.= "</ul>"; } $echo.= "</li>"; } else { $echo.= "<li><a href=" . site_url('product_display/index') . "/" . $subArr['id'] . ">" . $subArr['name'] . "</a></li>"; } } //$echo.= "</ul>"; return $echo; } 

модель:

 public function get_menu() { $this->db->select('id,name,parent_id'); $menu = $this->db->get('category')->result_array(); $data=$this->menu_child($menu); //print_r($data); return $data; } function menu_child($menu, $parent = NULL) { // echo $parent."---"; $main_menu = array_filter($menu, function($a)use($parent) { return $a['parent_id'] == $parent; }); // print_r($main_menu); if ($main_menu) { foreach ($main_menu as $key => $value) { $main_menu[$key]['sub_menu'] = $this->menu_child($menu, $value['id']); } } // print_r($main_menu); return $main_menu; }