Nested Sets. Nach x Versuchen gescheitert.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Nested Sets. Nach x Versuchen gescheitert.

    So... und ein neues wunderschönes Thema hab ich hier... Nested Sets.

    4 Wundervolle Tutorials und eine menge Probieren haben mich an den Rand des Wahnsinns getrieben.

    Folgende Tabellenstruktur ist vorhanden.

    page_id page_root page_l page_r page_title
    1 1 1 28 Hauptkategorie
    2 1 2 7 Kleidung
    3 1 3 4 Hosen
    4 1 5 6 Schuhe
    5 1 8 21 Autos
    6 1 9 10 Mercedes
    7 1 11 16 VW
    8 1 12 13 Bentley
    9 1 14 15 Skoda
    10 1 17 20 BMW
    11 1 22 27 Schmuck
    12 1 23 24 Uhren
    13 1 25 26 Ketten
    14 1 18 19 Mini


    Nun möchte ich gerne, dass die Kategorien vernünftig aufgerufen werden.
    Das habe ich bisher so gemacht:
    PHP-Code:
        $this->_query "SELECT pages1.page_l AS L,
                                pages1.page_r AS R,
                                pages1.page_title AS Baum ,
                                COUNT(*) AS level
                         FROM
                                        pages AS pages1,
                                        pages AS pages2
                         WHERE  pages1.page_l BETWEEN
                                pages2.page_l AND
                                pages2.page_r
                         GROUP BY
                                pages1.page_l
                                HAVING LEVEL=2;"

    Das klappt auch wunderbar. Es liefert mir:

    -Kleidung
    -Autos
    -Schmuck

    Nun.... Wenn ich einen Link anklicke, dann habe ich eine andere Abfrage:



    PHP-Code:
    $this->_query 'SELECT pages1.page_l AS L, pages1.page_r AS R,
                     CONCAT(REPEAT( \' \', COUNT( * ) ) ,
                     pages1.page_title ) AS Baum,
                     COUNT( * ) AS '
                  
    ' LEVEL '
                  
    ' FROM pages AS pages1, pages AS pages2'
                  
    ' WHERE pages1.page_l'
                  
    ' BETWEEN pages2.page_l AND pages2.page_r AND pages2.page_l'
                  
    " BETWEEN $left AND $right "
                  
    ' GROUP BY pages1.page_l'
    Nur leider werden die Unterkategorien alleine angezeigt. Ohne Hauptkategorien.

    Ich hätte nämlich gerne, dass folgedes Ergebnis kommt:

    "+" = Hat noch weitere Unterkategorien

    + Kleidung
    + Autos
    --- + BMW
    --- Mercedes
    --- VW
    usw.
    + Schmuck


    Habt Ihr eine Idee?
    Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

  • #2
    was hat das bitte mit PHP zu tun??? *verschieb*

    Kommentar


    • #3
      2 Möglichkeiten:

      - Serverseitig:
      + 2 Query absetzen, oder
      + 1 Query mit allem absetzen und bei der Ausgabe nur relevante Teile ausgeben

      - Clientseitig:
      alles auslesen und per div ein- und ausblenden.

      Kommentar

      Lädt...
      X