[PHP] Schlaue Kategorieauswahl?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von hunt33r, 11. April 2011 .

Schlagworte:
  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
     
  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? ;-)
     
  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?
     
  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.
     
  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
     
  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?
     
  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"
     
  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&auml;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ß
     
  9. 14. April 2011
    AW: Schlaue Kategorieauswahl?

    Ein bissel Ajax sollte reichen!

    onchange vom Auswahlfeld Hauptkategorie -> Unterkategorien nachladen und anderes Auswahlfeld füllen ...
     
  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?
     
  11. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.