私は紹介システムで働いています。 ユーザーAがユーザーBとユーザーCを招待し、ユーザーBがユーザーDを招待し、ユーザーCがユーザーEを招待したとします。どのように私はすべての子供と孫のノードを反復することができますか?ここで指定された親IDからすべての子ノードと孫ノードを検索するPHP
私のデシベル
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
の例のデータがどのように私は親として、ユーザAを取得し、ユーザーB(サブノードDを持つ)とユーザCを(ダウンリストが表示されます関数を作成することができていますサブノードE)?
このステップは..アルゴリズムのいくつかの種類をやった後、私はどこへ行くかわからない私はCIを使用していますが、これは親ID$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);
から2サブノードを取得するために私のクエリです
whileループとforeachループを含みます。それはまだ "動的"ではありません。
私はちょうどすべての子供と孫の名前とIDが必要であることに注意してください。それは多次元配列である必要はありません。私はすべての子供を得ることができる限り、大男と大男はすでに大丈夫です。
私はすべての子供や孫などを$ downline配列に保存する予定です。だから、すべてが本当に..前にこの階層ブツをやったことがないこれを行う方法に関するガイダンスを必要とする..あなたに感謝:)
を得ます。.. http://mikehillyer.com/articles/managing-hierarchicaをご覧ください。 l-data-in-mysql/..このリンクは非常に便利です。 –
このリンクの質問を参照してください私の助けあなた。 [For Treeを作成する](http://stackoverflow.com/questions/34433056/unable-to-retrieve-the-sub-categories/34433727#34433727) – kc1994
単一のループはこれでは機能しませんが、すべてにアクセスする必要がありますデータを整理しようとする前に、そうでない場合は、順序が間違っていればいくつか見逃してしまいます。最初のループではIDで、好ましくはそれをキーとして注文する必要があり、2番目のループでID/KEYによって最初の配列から関連するデータを取り出して2番目の配列を作成します。 – ArtisticPhoenix