Ini
situs web memiliki ikhtisar yang sangat bagus tentang berbagai metode untuk menyimpan data hierarkis di mysql dan PHP. Untuk menjawab pertanyaan Anda, cara termudah adalah dengan menggunakan php dan rekursi. Ada metode lain yang dapat Anda gunakan seperti modified preorder transversal
, yang tidak memerlukan beberapa kueri basis data. Tetapi metode ini bisa lebih rumit untuk diterapkan ketika berhadapan dengan banyak penyisipan dan pembaruan.
Metode lain yang sangat keren dan favorit pribadi saya adalah apa yang disebut "tabel penutupan" / "hubungan kedekatan" yang disebutkan dalam Apa cara paling efisien/elegan untuk mengurai tabel datar menjadi pohon?
Mengenai komentar Anda, pada dasarnya Anda harus membuat loop atau fungsi rekursif yang memilih induk chicago, lalu induk dari induk dan seterusnya.
$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);
Stack kemudian akan berisi induk Chicago, (mis. lokasi, AS)