Hallo dedlfix!
Warum sind es überhaupt zwei Tabellen?
Na wie sonst? Ich brauche ja pro Kategorie eine _eindeutige_ ID, damit ich etwas habe, worauf sich die Unterkategorie beziehen kann. Sonst weiß ich ja nicht, zu welcher Hauptkategorie sie gehört.
Wenn ich Beides in eine Tabelle schmeisse, dann nummeriert mir die ID einfach die Einträge durch. Völlig sinnlos. Ich brauche IDs für meine Hauptkategorien und IDs für meine Unterkategorien.
Sind die Daten von Haupt- und Unterkategorie so verschieden?
Es handelt sich um eine Link-Sammlung, also eine Lesezeichenverwaltung von URLs. (Siehe die "Tabelleninhalte" in meinem Ursprungsposting.) Die Hauptkategorien sind Themenüberschriften - unter denen sich die Unterkategorien aufteilen. Diese sind wieder Themen, unter denen sich dann die Links aufteilen. Es gibt dann also noch eine 3. Tabelle mit allen URLs und 2 INT Feldern, die sich auf die IDs von Kategorie und Unterkategorie beziehen. Bei dem in meinem Ausgangsposting zugrunde liegenden Fall geht es aber jetzt gar nicht um die Lnks, sondern rein um die Ausgabe einer Liste mit allen Kategorien und Unterkategorien. (In der Folge brauche ich das zuer Erstellung einer Navigation.)
Wenn sie gleich sind, dann nähme ich eine Tabelle im Stile deiner jetzigen Unterkategorie-Tabelle und die Hauptkategorien bekommen einen Parent-Zeiger mit dem Wert 0 (oder NULL).
Wie gesagt - das würde mir nichts bringen, weil wenn eine neue Unterkategorie hinzukommt, muss ja festgelegt werden, zu welcher Hauptkategorie sie gehört. Und somit brauche ich Hauptkategorien mit eindeutigen IDs.
in einem assoziativen Array gespeichert ('$rows_kategorien' und '$rows_unterkategorien')
Also in _je_ einem. Spricht war gegen ein verschachteltes, bei dem die Unterkategorien zur jeweilgen Hauptkategorie zugeordnet sind?
Wieso so kompliziert? Ob ich jetzt 1 mehrdimensionales Array oder 2 eindimensionale Arrays habe, ist mir völlig egal. Aber abgesehen davon: Schön und gut ... und wie stellst Du Dir dann vor, aus diesem mehrdimensionalen Array die Liste wie von mir gewünscht auszugeben? Das wird ja dann _noch_ komplizierter. Also bisher hat mir niemand aufzeigen können, dass es einen simpleren/unkomplizierteren/kürzeren Weg gibt als meine letzte Lösung.
Damit komtm noch eine weitere Array-Ebene ins Spiel, aber irgendwie muss man ja die Hauptkategoriedaten zusammenhalten. Das Ergebnis dieser Struktur ist, dass du nun gezielt über die Unterkategorien iterieren kannst und dabei nicht die Parent-ID überprüfen musst. Es ist nur ein wenig aufwendiger diese Struktur zu erstellen. Sortiere die Datensätze so, dass die mit Parent = 0/NULL zuerst kommen. Dann kannst du zuerst die Hauptkategorien erstellen und die nachfolgenden Unterkategorien einhängen.
Wie gesagt, ich wolte wissen, ob es noch simpler/kürzer/einfacher geht. Das wäre hier sicher nicht der Fall.
Mit lieben Grüßen
Melvin Cowznofski

What – me worry?