[英]display a tree of category, subcategory by given category id
雖然我正在使用codeigniter,但是有人可以在簡單的遞歸函數中幫助我也沒關系。 我有一個名為“ tbl_member
”的表,其中有3個字段member_id,parent_id,name
我想要特定member id
的tree 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.