Bagaimana untuk Membina Menu Pokok dengan Cekap dalam PHP dan MySQL dengan Satu Pertanyaan?

DDD
Lepaskan: 2024-10-28 03:17:31
asal
604 orang telah melayarinya

How to Efficiently Build Tree Menus in PHP and MySQL with a Single Query?

Membina Menu Pokok dalam PHP dan MySQL

Apabila cuba membina pepohon menu senarai tidak tersusun daripada pangkalan data MySQL dalam PHP, kecekapan prestasi adalah penting . Untuk mencapai matlamat ini, satu pertanyaan pangkalan data boleh digunakan dan rekursi boleh dielakkan.

Penyelesaian:

Fungsi PHP berikut mengambil tatasusunan objek halaman sebagai input, setiap satunya mengandungi ID, tajuk dan atribut ID induk. Ia secara rekursif menjana struktur senarai HTML melalui lintasan objek.

<code class="php">function build_menu($objects, $parent = 0) {
  $result  = "<ul>";

  foreach ($objects as $object) {
    if ($object['parent_id'] == $parent) {
      $result .= "<li>{$object['title']}";

      if (has_children($objects, $object['id'])) {
        $result .= build_menu($objects, $object['id']);
      }

      $result .= "</li>";
    }
  }

  $result .= "</ul>";
  return $result;
}</code>
Salin selepas log masuk

Penggunaan:

Untuk menggunakan fungsi, susunan objek halaman boleh diambil semula daripada pangkalan data dan diluluskan sebagai hujah kepadanya. Fungsi ini akan mengembalikan struktur senarai HTML terformat yang mewakili pepohon menu.

<code class="php">$page_objects = get_page_objects_from_database();
$menu_html = build_menu($page_objects);</code>
Salin selepas log masuk

Kecekapan Yang Dipertingkat:

Untuk kecekapan optimum, disyorkan untuk memesan keputusan menggunakan pertanyaan SQL. Ini memastikan bahawa objek diproses dalam urutan logik, meminimumkan perbandingan dan lelaran yang tidak perlu. Selain itu, lajur pemberat atau jujukan dalam skema pangkalan data boleh membantu dalam menyusun pokok menu.

Atas ialah kandungan terperinci Bagaimana untuk Membina Menu Pokok dengan Cekap dalam PHP dan MySQL dengan Satu Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!