Kategorien...

zinion

Erfahrenes Mitglied
Hallo!

Ich versuche gerade eine Site zu basteln, in der es wie in einem Onlineshop verschiedene Kategorien gibt, durch die man sich klicken kann. Die Tiefe der Unterkategorien ist dabei unbestimmt. Nach einem Tip hier aus dem Forum habe ich mir eine solche Datenbank angelegt:

ID int auto_increment
kategorie_name VARCHAR
kategorie_ueber INT (ID der übergeordneten Kategorie)

Ich möchte es so programmieren, daß beim Klick auf eine Kategorie deren Unterkategorien gezeigt werden (was ja kein Problem ist) und dann aber beim Klick auf die Unterkategorie wie die weiteren Unterkategorien angezeigt werden usw. Irgendwie kriege ich das nicht so richtig hin...hat da jemand einen Anstoss für mich?
 
Die Links sehen irgendwie so aus: unterkategorie.php?kat=7

Und in unterkategorie.php musst du dann aus der jeweiligen Tabelle alle Zeilen mit kategorie_ueber = 7 auslesen. (Um die richtige Tabelle zu erhalten, musst du dir halt noch was einfallen lasse. Du könntest die Tabellen z. B. durchnummerieren und dann zu kat=7 noch eine zusätzliche Variable wie table=3 übergeben.
 
Ja, do weit war ich auch schon aber dann kommt ein Problem:

Beispiel:

Kategorie Flaschen hat ID 1
Unterkategorie Bierflaschen hat ID 4 (ein paar dazwischen) und kategorie_ueber 1

bis hier kein Problem aber jetzt kommt noch eine Unterkategorie:

Unterkategorie blaue Bierflaschen hat ID 6 und kategorie_ueber 4 (Bierflaschen)

Hm und jetzt bin ich wieder verwirrt. Ach Mist ich bastel da jetzt schon echt ne Weile dran rum und hab nu voll das Brett vorm Kopf. ich mach mal ein, zwei Stunden was anderes und denk dran nochmal drüber nach. Danke schonmal für die Antwort.

P.S.: Wenn jemand eine komplett andere Idee für ein Kategoriesystem hat, verwerf ich den jetzigen Ansatz gerne. ;)
 
zinion hat gesagt.:
P.S.: Wenn jemand eine komplett andere Idee für ein Kategoriesystem hat, verwerf ich den jetzigen Ansatz gerne. ;)

Hier solltest Du mich mal in das Prinzip von Nested Sets einlesen. Insbesondere bei tiefer Navigationstruktur bietet die Nested Set Methode doch einen enormen Geschwindigkeitsvorteil.

Beiträge inkl. einer sehr sehr guten Klasse solltest Du hier im Forum finden :)
 
Vorschlag: In der Datenbank neben Kategorie und überkategorie noch das level speichern.

Dann hast du zum beispiel kategorie 7 auf level 3, und um alle unterkategorien zu finden machst du ein:
Code:
select * from tabelle where kategorie_ueber=7 AND level=4
So kannst du dann tif in den Kategorien gehen :).

Ciao,
Larayna
 
Danke an euch beide. Die werden nicht so tief gehen, daß ich mich da in ein ganzes Konzept mit Klassen und so einlesen möchte, es soll nur prinzipiell möglich sein eine unendliche Tiefe zu erzeugen. Ich werde wohl mal die sehr gute Idee probieren, noch den Level mit aufzunehmen :)
 
zinion hat gesagt.:
Die werden nicht so tief gehen, (...) es soll nur prinzipiell möglich sein eine unendliche Tiefe zu erzeugen.

Ürgs, ich lese da einen Wiederspruch ;)
Ich kann Dir es nur empfehlen, dich mit Nested Sets auseinander zu setzen. Ob Du es dann später auch wirklich einsetzt, bleibt Dir überlassen. Jedenfalls hast Du nach einer alternativen Möglichkeit gefragt, und hier hast Du sie ;)
 
Damit befassen werde ich mich auf jeden Fall, bin halt nur nich sicher obs für dieses Projekt das richtige ist ;)
 
Zurück