#1 11. April 2011 Schlaue Kategorieauswahl? Hallo Leute, Ich schreibe gerade ein Skript und wollte euch nach Tipps fragen. Ich Brauche "Hauptkategorien"->"Unterkategorien"->"Unterunterkategorie" Wie mache ich das am Besten (geschicktesten?) Was sollte alles in einer Kategorie (in der Tabelle) vorkommen? Reicht das für die Kategorie? ID (als Primärschlüssel) Bezeichnung Icon Unterkategorie: UID Bezeichnung ID (Bezugspunkt zu "Kategorie") Icon Unterunterkategorie UUID Bezeichnung UID ID (hier nützlich?) Icon Bei meinen Abfragen habe ich bisher sehr lange if Schleifen gemacht, damit ich das realisieren konnte. Was ist der einfachste Weg? Man muss ja auch mal etwas ändern Gruß hunt33r + Multi-Zitat Zitieren
#2 11. April 2011 AW: Schlaue Kategorieauswahl? Hab ich das richtig verstanden, das du das ganze in SQL reinhämmern willst? Dann reicht für alles eigentlich nur ID, RID, Bezeichnung, Icon ID haben alle unterschiedliche (was ja logisch ist) und die RID (Relation ID, nenn ich sie mal) ist einfach die ID der oben drüberliegende Kategorie. Hauptkategorie -> ID=2313 RID=null Unterkategorie -> ID=6754 RID = 2313 Unter-Unterkategorie -> ID=91233 RID=6754 Und zack kannst du mit wenig Aufwand eine Struktur zusammenbauen. Oder versteh ich das falsch was du meinst? ;-) + Multi-Zitat Zitieren
#3 11. April 2011 AW: Schlaue Kategorieauswahl? Ja das ist richtig so nur habe ich etwas weiter gedacht. Ich will ja auch, dass man wenn man auf Kategorie "Hauptkategorie 1" klickt alle Unterkategorien und Unterunterkategorien sich öffnen. Dann muss ich doch auch sagen können select * from Unterkategorie1 where Hauptkategorie1==1 { select * from UnterUnterkategorie1 where Unterkategorie1==1 { blablup } } Oder nicht? + Multi-Zitat Zitieren
#4 12. April 2011 AW: Schlaue Kategorieauswahl? So? :1: -- :1: ---- :1: ---- :2: -- :2: ---- :1: ---- :2: :2: -- :1: ---- :1: ---- :2: -- :2: ---- :1: ---- :2: Also wens eine Navigation werden soll braucht du immer nur eine rID. bei den SubSubKategorien nimmst du einfach die ID der SubKategorie die wiederum ihre rID auf der Hauptkategorie hat. Die rID der Hauptkategorien setzt du auf 0: if($rID == 0) { //es ist eine Hauptkategorie } else { //es ist eine Unterkategorie von $rID } dann brauchst du auch nur eine Tabelle was viel mehr dem modernen OO Konzepten entspricht und kannst unendlich viele SubKategorien erstellen. //edit: ach lol stevo hats ja schon gesagt dass mit diesen viele "unterkategorien" in der Datenbank ist überhaupt keine tolle Sache. Da musst du dir einen Weg überlegen ohne so viele Tabellen erstellen zu müssen um genau zu sein nur eine. + Multi-Zitat Zitieren
#5 12. April 2011 AW: Schlaue Kategorieauswahl? mit 3 tabellen wird es keine gute lösung sein. beschäftige dich etwas mit nested sets bzw. baumstrukturen: http://dev.mysql.com/tech-resources/articles/hierarchical-data.html Nested Sets – Verschachtelte Bäume mit MySQL - Arne Klempert oder evtl: Baumstruktur aus DB in Array abbilden – php bar + Multi-Zitat Zitieren
#6 12. April 2011 AW: Schlaue Kategorieauswahl? Danke! Diese Tipps werde ich später umsetzen aber im Moment habe ich Zeitmangel. Wie sieht dann die Abfrage nach einer SubSubkategorie aus? + Multi-Zitat Zitieren
#7 13. April 2011 AW: Schlaue Kategorieauswahl? steht alles da drin. Nested Sets – Verschachtelte Bäume mit MySQL - Arne Klempert sonst google mal nach "nested" + Multi-Zitat Zitieren
#8 14. April 2011 AW: Schlaue Kategorieauswahl? Danke! Und wie mache es es, dass Wenn ich "Hauptkategorie1" auswähle nur die Unterkategorien (in einem anderen Auswahlfeld) von "Hauptkategorie1" angezeigt werden und nicht die restlichen? Sollte beliebig erweiterbar sein, was mit "onchange" meines Wissens nicht möglich ist. Alternative? so etwas wie: "wenn Hauptkategorie 1 dann zeige Unterkategorie 1 und 2 und 3" "wenn Hauptkategorie 2 dann zeige Unterkategorie 4 und 5 und 6 ..." Code: <span id="tag_kategorie">Kategorie:</span><br /> <select name="kategorie" id="formular_kategorie" size="1"> <option value="">Bitte wählen</option> <option value="Kategorie 1">Kategorie 1</option> <option value="Kategorie 2">Kategorie 2</option> <option value="Kategorie 3">Kategorie 3</option> </select> Wie erweitern? Gruß + Multi-Zitat Zitieren
#9 14. April 2011 AW: Schlaue Kategorieauswahl? Ein bissel Ajax sollte reichen! onchange vom Auswahlfeld Hauptkategorie -> Unterkategorien nachladen und anderes Auswahlfeld füllen ... + Multi-Zitat Zitieren
#10 14. April 2011 AW: Schlaue Kategorieauswahl? Er könnte dann auch einfach rekursiv jedes Untermenü durchgehen , bis es kein Untermenü mehr gibt etc. Eigentlich (denke ich) ein parade Beispiel für's rekursive auslesen etc oder? + Multi-Zitat Zitieren