Rumah > Artikel > pangkalan data > Bagaimana untuk Cekap Mendapatkan Kategori Rekursif dengan Satu Pertanyaan dalam PHP dan MySQL?
Mendapatkan semula Kategori Rekursif dengan Pertanyaan Tunggal
Dalam struktur data hierarki seperti tapak web dengan artikel dan bahagian, mendapatkan semula kategori rekursif dengan cekap boleh menjadi cabaran. Untuk menangani isu ini, kami membentangkan penyelesaian yang berkuasa menggunakan PHP dan MySQL. Dengan memanfaatkan rujukan dan pembinaan pokok yang bijak, kami boleh mencapai prestasi optimum walaupun dengan set data yang besar.
Pendekatan
Penyelesaian kami melibatkan dua langkah utama:
Bina Struktur Pokok: Kami membina struktur pokok dalam PHP seperti berikut:
Dengan menggunakan rujukan untuk mengemas kini struktur pokok secara dinamik, kami mencipta perwakilan yang ringan dan cekap bagi kategori rekursif.
Contoh Kod
Coretan kod berikut menggambarkan pendekatan:
$nodeList = array(); $tree = array(); $query = mysql_query("SELECT category_id, name, parent FROM categories ORDER BY parent"); while($row = mysql_fetch_assoc($query)){ $nodeList[$row['category_id']] = array_merge($row, array('children' => array())); } foreach ($nodeList as $nodeId => &$node) { if (!$node['parent'] || !array_key_exists($node['parent'], $nodeList)) { $tree[] = &$node; } else { $nodeList[$node['parent']]['children'][] = &$node; } } unset($node); unset($nodeList);
Kelebihan Pendekatan Ini
Berbanding dengan pertanyaan MySQL rekursif, pendekatan PHP ini menawarkan beberapa kelebihan:
Kesimpulan
Dengan menggunakan rujukan dan membina pokok struktur dalam PHP, kami menyediakan penyelesaian yang sangat cekap untuk mengambil kategori rekursif dengan satu pertanyaan. Pendekatan ini bukan sahaja pantas dan berskala tetapi juga praktikal dan mudah untuk pengurusan kod.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Mendapatkan Kategori Rekursif dengan Satu Pertanyaan dalam PHP dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!