Pendapatan Kategori Rekursif dengan Pertanyaan MySQL Tunggal
Dalam aplikasi web, menyusun kandungan ke dalam kategori hierarki adalah perkara biasa. Struktur kategori kompleks, seperti pokok, memerlukan pengendalian khusus untuk mendapatkan semula. Artikel ini meneroka cara paling berkesan untuk mengambil kategori rekursif dengan satu pertanyaan MySQL.
Membina pepohon kategori dalam PHP menggunakan rujukan mengoptimumkan proses. Pertanyaan mendapatkan semula kategori dan ID induknya, yang disimpan dalam tatasusunan bersekutu ($nodeList). Tatasusunan distrukturkan untuk membuat rujukan hierarki di mana setiap induk nod muncul dalam kekunci 'induk'nya.
Pembinaan pepohon berlaku dalam kod berikut:
foreach ($nodeList as $nodeId => &$node) { if (!$node['parent'] || !array_key_exists($node['parent'], $nodeList)) { $tree[] = &$node; } else { $nodeList[$node['parent']]['children'][] = &$node; } }
Gelung ini berulang ke atas nod , dan jika nod tidak mempunyai induk atau induk tidak wujud dalam tatasusunan, nod itu ditambahkan pada tatasusunan $tree. Jika tidak, nod itu ditambahkan sebagai anak kepada tatasusunan 'anak' induknya.
Hasilnya ialah struktur pokok hierarki yang disimpan dalam tatasusunan $tree, dengan setiap nod mengandungi rujukan kanak-kanak. Pendekatan pertanyaan tunggal ini jauh lebih pantas daripada menggunakan pertanyaan MySQL rekursif, walaupun untuk pokok kategori besar.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kategori Rekursif dalam Satu Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!