これ
ウェブサイトには、mysqlとPHPに階層データを格納するためのさまざまな方法の非常に優れた概要があります。あなたの質問に答える最も簡単な方法は、phpと再帰を使用することです。 modified preorder transversal
など、使用できる他の方法があります 、複数のデータベースクエリを必要としません。ただし、このメソッドは、多くの挿入と更新を処理する場合、実装がより複雑になる可能性があります。
もう1つの本当にクールな方法であり、私の個人的なお気に入りは、フラットテーブルをツリーに解析するための最も効率的でエレガントな方法は何ですか?
コメントに関しては、基本的に、シカゴの親を選択し、次に親の親を選択するループまたは再帰関数を作成する必要があります。
$stack = array();
$parent = 3;
while($parent != 0){
$data = (put your mysql to get the row with parentID = $parent)
$parent = data['parentID'];
$stack[] = $data;
}
$stack = array_reverse($stack);
スタックには、シカゴの親(つまり、場所、米国)が含まれます