Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie visualisiere ich hierarchische Daten (Kategorien) in PHP/MySQL?

DDD
Freigeben: 2024-10-23 18:22:35
Original
522 Leute haben es durchsucht

How to Visualize Hierarchical Data (Categories) in PHP/MySQL?

Kategoriehierarchie in PHP/MySQL

Beim Umgang mit hierarchischen Daten, wie z. B. Kategorien, ist es entscheidend, diese strukturiert darzustellen. Ein gängiger Ansatz ist die Verwendung eines Adjazenzlistenmodells, bei dem jede Zeile eine Kategorie darstellt und über ein Feld verfügt, das die übergeordnete Kategorie angibt.

Ermitteln der Hierarchie

Mit PHP können Sie kann die Kategoriedaten von MySQL abrufen und die Hierarchie in einem einzigen Durchgang erstellen. Der folgende Code, inspiriert von Nate Weiners „One Pass Parent-Child Array Structure“:

<code class="php">$refs = [];
$list = [];

$sql = "SELECT category_id, parent_id, category_name FROM categories ORDER BY category_name";

foreach ($result as $row) {
    $ref = &$refs[$row['category_id']];

    $ref['parent_id'] = $row['parent_id'];
    $ref['category_name'] = $row['category_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

Diese Schleife füllt zwei Arrays: $refs enthält Verweise auf jede Kategorie, während $list die Kategorien der obersten Ebene enthält (ohne übergeordnete Elemente).

Erstellen einer hierarchischen Darstellung

Um eine visuelle Darstellung der Hierarchie zu erstellen, können Sie eine rekursive Funktion verwenden, um eine verschachtelte HTML-Liste zu generieren. Betrachten Sie den folgenden Code:

<code class="php">function toUL(array $array) {
    $html = '<ul>' . PHP_EOL;

    foreach ($array as $value) {
        $html .= '<li>' . $value['category_name'];
        if (!empty($value['children'])) {
            $html .= toUL($value['children']);
        }
        $html .= '</li>' . PHP_EOL;
    }

    $html .= '</ul>' . PHP_EOL;

    return $html;
}</code>
Nach dem Login kopieren

Diese Funktion verwendet ein Array von Kategorien als Eingabe und erstellt rekursiv eine verschachtelte HTML-Liste. Der resultierende HTML-Code kann dann ausgegeben werden, um die Kategoriehierarchie anzuzeigen.

Das obige ist der detaillierte Inhalt vonWie visualisiere ich hierarchische Daten (Kategorien) in PHP/MySQL?. 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
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!