Rumah > Artikel > pangkalan data > Bagaimana untuk Mendapatkan Semua Nod Kanak-kanak dalam Struktur Data Hierarki dengan PHP dan MySQL?
Mendapatkan semula Data Hierarki dengan MySQL dan PHP
Mendapatkan semula data hierarki daripada pangkalan data boleh menjadi mencabar, terutamanya apabila menggunakan model data senarai bersebelahan. Soalan ini bertujuan untuk menangani isu ini dengan mencipta fungsi yang mengembalikan semua nod anak, cucu dan sebagainya, di bawah ibu bapa yang ditentukan.
Membina Pokok Hierarki
Pertama, kod PHP yang disediakan mendapatkan semula data daripada jadual MySQL dan menyimpannya dalam tatasusunan bersekutu. Model data senarai bersebelahan mewakili hierarki dengan menyimpan perhubungan ibu bapa-anak dalam satu lajur (iaitu, parent_id).
Untuk mengubah data ini menjadi struktur pepohon, fungsi buildtree() merentasi tatasusunan secara rekursif, mengaitkan setiap ID nod dengan datanya dan mencipta tatasusunan bersarang dengan kanak-kanak sebagai elemen.
Mengambil Nod Di Bawah Induk
Fungsi fetch_recursive() direka untuk mendapatkan semula semua nod anak di bawah induk tertentu. Ia berulang melalui struktur pokok, bermula pada ID induk yang ditentukan. Jika ID induk nod sepadan dengan ID induk yang ditentukan, ia menambahkan data nod pada tatasusunan hasil dan meneruskan untuk meneroka nod anak.
Contoh Penggunaan
Untuk menunjukkan fungsi, kod PHP berikut membina pepohon dan mendapatkan semula nod anak di bawah ID tertentu:
<?php $data = [ ['id' => 1, 'name' => 'Electronics', 'parent_id' => 0], ['id' => 2, 'name' => 'Televisions', 'parent_id' => 1], ['id' => 3, 'name' => 'Portable Electronics', 'parent_id' => 1], // ... additional data ]; $tree = buildtree($data); $child_nodes = fetch_recursive($tree, 3); foreach ($child_nodes as $node) { echo $node['name'] . '<br>'; }
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Semua Nod Kanak-kanak dalam Struktur Data Hierarki dengan PHP dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!