Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mendapatkan Data Hierarki daripada Pangkalan Data MySQL dalam PHP sebagai HTML Bersarang?

Bagaimana untuk Mendapatkan Data Hierarki daripada Pangkalan Data MySQL dalam PHP sebagai HTML Bersarang?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 02:32:29511semak imbas

How to Retrieve Hierarchical Data from a MySQL Database in PHP as Nested HTML?

Penemuan Hierarki Kategori dalam PHP

Dalam pangkalan data MySQL, anda boleh menyimpan data hierarki dalam jadual bernama kategori dengan lajur untuk category_id dan parent_id. Untuk mendapatkan semula data ini dalam struktur hierarki menggunakan PHP, ikuti langkah berikut:

  1. Ambil Data daripada Pangkalan Data:

    Gunakan pertanyaan SQL untuk ambil semua kategori yang disusun mengikut nama mereka:

    <code class="php">$sql = "SELECT category_id, parent_id, name FROM categories ORDER BY name";
    $result = $pdo->query($sql);</code>
  2. Buat Tatasusunan Rujukan:

    Buat tatasusunan bersekutu $refs yang akan menyimpan rujukan kepada setiap kategori. Setiap rujukan akan mengandungi parent_id dan sifat nama. Untuk kategori tanpa induk (parent_id = 0), tambahkannya pada tatasusunan $list.

    <code class="php">$refs = array();
    $list = array();
    foreach ($result as $row) {
        $ref = &$refs[$row['category_id']];
        $ref['parent_id'] = $row['parent_id'];
        $ref['name'] = $row['name'];
        if ($row['parent_id'] == 0) {
            $list[$row['category_id']] = &$ref;
        } else {
            $refs[$row['parent_id']]['children'][$row['category_id']] = &$ref;
        }
    }</code>
  3. Jana Senarai HTML Bersarang:

    Buat fungsi rekursif kepadaUL untuk menjana senarai HTML bersarang menggunakan tatasusunan $list. Ia sepatutnya menyemak kanak-kanak dan memanggil dirinya secara rekursif untuk membina subpokok.

    <code class="php">function toUL(array $array) {
        $html = '<ul>' . PHP_EOL;
        foreach ($array as $value) {
            $html .= '<li>' . $value['name'];
            if (!empty($value['children'])) {
                $html .= toUL($value['children']);
            }
            $html .= '</li>' . PHP_EOL;
        }
        $html .= '</ul>' . PHP_EOL;
        return $html;
    }</code>
  4. Paparkan Hierarki:

    Gunakan fungsi toUL untuk menjana dan paparkan senarai HTML hierarki.

Anda boleh mendapatkan contoh berguna untuk mendapatkan senarai HTML bersarang daripada set rekod tatasusunan objek dalam bahagian "Soalan Berkaitan" yang disediakan dalam bahan rujukan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Data Hierarki daripada Pangkalan Data MySQL dalam PHP sebagai HTML Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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