簡體   English   中英

顯示類別樹,按給定類別ID子類別

[英]display a tree of category, subcategory by given category id

雖然我正在使用codeigniter,但是有人可以在簡單的遞歸函數中幫助我也沒關系。 我有一個名為“ tbl_member ”的表,其中有3個字段member_id,parent_id,name我想要特定member idtree structure

例如,如果我發送了member_id(10) ,它將顯示該member 所有 children(sub_member)

有幫助嗎?

 function get_tree($member_id){
  $result=$this->db->get_where('table',array('member_id'=>$member_id));
  $data=$result->row_array();
    $n=$this->get_child($data['member_id']);
      foreach($n as $l){
        $data[]=$l;
       }
    print_r($data);
}


function get_child($parent_id){
$result=$this->db->get_where('table',array('parent_id'=>$parent_id));
$row = $result->result_array();
foreach ($row as $key => $m) {
  if (is_array($m) && count($m) != NULL) {
      $me=$this->get_child($m['member_id']);
      foreach($me as $res){
            $row[$key][]=$res;
       }
    }
 }
  return $row;
}
function getMemberTree($id) {
$q =  $this->db->get_where('tbl_member', array('parent_id' => $id));
if($q->num_rows() > 0) {
    foreach($q->result() as $row) {
        $first_level[] = $row;
    }
    foreach($first_level as $r) {
        $member_id = $r->member_id;
        $m = $this->db->get_where('tbl_member', array('parent_id' => $member_id));
        if($m->num_rows() > 0) {
            foreach($m->result() as $mrow) {
                $second_level[] = $mrow;
            }
        }
    }
    $data[] = $first_level;
    $data[] = $second_level;

    return $data; 

}

這些解決方案需要很多數據庫命中。 考慮使用層次結構表結構:

http://codebyjeff.com/blog/2012/10/nested-data-with-mahana-hierarchy-library

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM