Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie rufe ich hierarchische Daten aus einer MySQL-Datenbank in PHP als verschachteltes HTML ab?

Linda Hamilton
Freigeben: 2024-10-24 02:32:29
Original
510 Leute haben es durchsucht

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

Abruf der Kategoriehierarchie in PHP

In einer MySQL-Datenbank können Sie hierarchische Daten in einer Tabelle mit dem Namen „Kategorien“ mit Spalten für „category_id“ und „parent_id“ speichern. Um diese Daten in einer hierarchischen Struktur mit PHP abzurufen, befolgen Sie diese Schritte:

  1. Daten aus der Datenbank abrufen:

    Verwenden Sie eine SQL-Abfrage, um Rufen Sie alle nach Namen sortierten Kategorien ab:

    <code class="php">$sql = "SELECT category_id, parent_id, name FROM categories ORDER BY name";
    $result = $pdo->query($sql);</code>
    Nach dem Login kopieren
  2. Referenzarray erstellen:

    Erstellen Sie ein assoziatives Array $refs, auf das Referenzen gespeichert werden jede Kategorie. Jede Referenz enthält die Eigenschaften parent_id und name. Fügen Sie Kategorien ohne übergeordnetes Element (parent_id = 0) zum Array $list hinzu.

    <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>
    Nach dem Login kopieren
  3. Verschachtelte HTML-Liste generieren:

    Erstellen Sie eine rekursive Funktion toUL, um mithilfe des $list-Arrays eine verschachtelte HTML-Liste zu generieren. Es sollte nach untergeordneten Elementen suchen und sich selbst rekursiv aufrufen, um Teilbäume zu erstellen.

    <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>
    Nach dem Login kopieren
  4. Hierarchie anzeigen:

    Verwenden Sie zum Generieren die toUL-Funktion und zeigen Sie die hierarchische HTML-Liste an.

Ein hilfreiches Beispiel zum Abrufen einer verschachtelten HTML-Liste aus dem Array-Recordset eines Objekts finden Sie im Abschnitt „Verwandte Fragen“ im Referenzmaterial.

Das obige ist der detaillierte Inhalt vonWie rufe ich hierarchische Daten aus einer MySQL-Datenbank in PHP als verschachteltes HTML ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!