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

Linda Hamilton
Lepaskan: 2024-10-24 02:32:29
asal
510 orang telah melayarinya

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>
    Salin selepas log masuk
  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>
    Salin selepas log masuk
  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>
    Salin selepas log masuk
  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!

sumber:php
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
Artikel terbaru oleh pengarang
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!