Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie konvertiere ich Datenbankergebnisse in hierarchische Array-Objekte?

Barbara Streisand
Freigeben: 2024-11-06 17:04:03
Original
648 Leute haben es durchsucht

How to Convert Database Results into Hierarchical Array Objects?

Datenbankergebnisse in hierarchische Array-Objekte konvertieren

Implementieren einer auf Abschlusstabellen basierenden Hierarchie

Um hierarchische Daten effizient darzustellen, sollten Sie die Verwendung einer Abschlusstabelle in Betracht ziehen. In diesem Zusammenhang verwaltet eine Abschlusstabelle die Beziehungen zwischen Vorfahren und Nachkommen einer Baumstruktur und ermöglicht so das effiziente Abrufen und Darstellen der Hierarchie.

Hierarchische Daten abfragen

Um die Baumstruktur abzufragen, haben wir kann eine SQL-Abfrage ausführen, die die Nachkommen eines bestimmten Knotens zusammen mit ihren Ebenen in der Hierarchie abruft. Hier ist eine Beispielabfrage, die Nachkommen bis zu einer bestimmten Ebene abruft:

SELECT d.*, p.a AS '_parent'
FROM longnames AS a
JOIN closure AS c ON (c.a = a.tsn)
JOIN longnames AS d ON (c.d = d.tsn)
LEFT OUTER JOIN closure AS p ON (p.d = d.tsn AND p.l = 1)
WHERE a.tsn = ? AND c.l <= ?
ORDER BY c.l;
Nach dem Login kopieren

Abfrageergebnisse verarbeiten

Sobald die Abfrageergebnisse abgerufen wurden, können wir sie verarbeiten, um eine hierarchische Array-Struktur zu erstellen. Dazu gehört das Sortieren der Zeilen nach Hierarchie und das entsprechende Gruppieren, wodurch ein Array mit Knoten als Objekten mit Daten und untergeordneten Arrays erstellt wird.

Benutzerdefinierte Zeilenobjekte

Um die Array-Struktur zu verbessern, können wir erstellen benutzerdefinierte Row-Objekte, die ein assoziatives Array von Zeilendaten zusammen mit einem Rowset-Objekt für ihre untergeordneten Elemente enthalten. Das untergeordnete Rowset für Blattknoten ist leer.

toArrayDeep()-Methode

Benutzerdefinierte Klassen können auch Methoden wie toArrayDeep() enthalten, die ihren Dateninhalt rekursiv in ein einfaches Array konvertieren und so einen einfachen Datenexport ermöglichen .

Beispielverwendung

Um dieses System zu verwenden, könnte man zunächst eine Instanz des Taxonomietabellen-Datengateways abrufen und dann die gewünschte Baumstruktur abrufen:

// Get an instance of the taxonomy table data gateway
$tax = new Taxonomy();

// Query tree starting at Rodentia (id 180130), to a depth of 2
$tree = $tax->fetchTree(180130, 2);

// Dump out the array
var_export($tree->toArrayDeep());
Nach dem Login kopieren

Zusätzlich Hinweise

Um die Tiefe jedes Pfads zu bestimmen, können Sie neue Knoten in die Abschlusstabelle einfügen und dabei die entsprechende Ebene basierend auf ihrer Hinzufügung in der Hierarchie berechnen. Die Funktion LAST_INSERT_ID() kann nützlich sein, um die ID neu eingefügter Knoten zu erhalten.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich Datenbankergebnisse in hierarchische Array-Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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!