추천 시스템에서 일하고 있습니다. 사용자 A는 사용자 B와 사용자 C를 초대하고 사용자 B는 사용자 D를 초대하고 사용자 C는 사용자 E를 초대합니다. 어떻게 모든 자식과 손자 노드를 반복 할 수 있습니까? 여기 주어진 부모 ID의 모든 자식 노드와 손자 노드 찾기 PHP
내 DB의 예 데이터 인ID name referral_id
1 user A null//assume the tree starts from here
2 user B 1
3 user C 1
4 user D 2
5 user E 3
I 부모로서, 유저 (A)를 검색하고 (그리고 사용자 C (하위 노드 D로) 사용자 B를 나열하는 기능을 만드는 방법 하위 노드 E)?
내가 CI를 사용하고,이 알고리즘의 몇 가지 유형을했을
$downline_query = $this->db->query("SELECT * FROM user WHERE referral_id = '1'")
//above query will return user B and C as result.. hardcoded for example
$downline = array();
foreach($downline_query as $result){
$downline[] = array(
"name" => $result['name'],
"id" => $result['id']
);
}
//above $downline array will only contain user B and C. I don't know where to go again after this step..
$records = array("data"=>$downline);
echo json_encode($records);
나는 곳이 단계 .. 후 가야 모르는 부모 ID에서이 하위 노드를 검색하는 내 쿼리입니다 while 루프 및 foreach 루프가 포함됩니다. 그러나 그것은 여전히 "역동적 인"것이 아닙니다.
나는 모든 아이들과 손주들의 이름과 ID가 필요하다는 것을 알려드립니다. 다차원 배열 일 필요는 없습니다. 내가 모든 아이들을 얻을 수있는 한, granchildren과 great-grand-children은 이미 괜찮습니다 ..
$ 하위 라인 배열에 모든 자식과 손자 등을 저장할 계획입니다. 그래서 모두가 ...
정말이 작업을 수행하는 방법에 대한 지침을 필요로 다차원 배열없이 1 개 배열되기 전에이 계층 구조 꼬추를 해본 적이 .. 당신에게 :) 감사합니다 $downline_query
가정
를 얻을 .. http://mikehillyer.com/articles/managing-hierarchica에서 살펴보십시오. l-data-in-mysql/..이 링크는 매우 유용합니다. –
이 링크 질문을 참조하십시오. [만들기 트리] (http://stackoverflow.com/questions/34433056/unable-to-retrieve-the-sub-categories/34433727#34433727) – kc1994
단일 루프 실 거예요이 일을 위해, 당신은 모든 데이터를 구성하려고 시도하기 전에 데이터를 가져와야합니다. 그렇지 않으면 순서가 잘못되어 있으면 놓칠 수 있습니다. 첫 번째 루프에서 ID로 순서대로 정렬해야합니다 (두 번째 루프에서는 ID/KEY의 첫 번째 배열에서 관련 데이터를 가져 와서 두 번째 배열을 만듭니다) – ArtisticPhoenix