NestedSetBaum - Unterbäume auslesen

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

  • NestedSetBaum - Unterbäume auslesen

    Hallo Board!
    Ich nutze die NestedSetBaum Klasse von Martin Rosekeit. Der Aufbau der Tabelle sieht so aus:
    `id` int(10) unsigned NOT NULL auto_increment,
    `lft` int(10) unsigned NOT NULL default '0',
    `rgt` int(10) unsigned NOT NULL default '0',
    `moved` int(1) unsigned NOT NULL default '0',
    `titel` varchar(255) NOT NULL default '',


    Die gesamte Struktur frage ich z.B. so ab:
    PHP-Code:
    <?php
    $sql 
    "SELECT group2.*,
    COUNT(*) AS level
    FROM xxx AS group1,
    xxx AS group2
    WHERE group2.lft BETWEEN group1.lft AND group1.rgt
    GROUP BY group2.lft"
    ;  
    $result mysql_query($sql) OR die(mysql_error());        
    while(
    $row mysql_fetch_assoc($result)) 
    {  
    $KategorieID=$row['id'];
    $KategorieLevel=$row['level'];
    $KategorieTitel=$row['titel'];
    $space str_repeat ("&nbsp;&nbsp;","$KategorieLevel");
    echo 
    "<a href=test.php?ID=$KategorieID>" $space "$KategorieTitel</a><br>"
    }
    ?>
    Das klappt auch wunderbar.
    Jetzt möchte ich aber NUR die Unterbäume eine einzigen Kategorie auf einer extra "Kategoriedetailseite" darstellen.
    Wie mach ich das?

    Beispiel einer komplett Ausgabe des Baums
    Code:
    - Home
    --- Produktgruppe1
    --- Produktgruppe2
    ----- ProduktA
    ----- ProduktB
    ----- ProduktC
    ----- ProduktD
    --- Produktgruppe3
    ----- ProduktG
    --- Produktgruppe4
    ----- ProduktX
    ----- ProduktY
    ----- ProduktZ
    Beispiel für die Ausgabe der Unterkategorie 2
    Code:
    --- Produktgruppe2
    ----- ProduktA
    ----- ProduktB
    ----- ProduktC
    ----- ProduktD
    Besten Dank!

  • #2
    Alles was zwischen lft und rgt des Elternelements liegt gehört zu deinem gesuchten Teilbaum. Ich verwende dazu jeweils noch eine Funktion um die lft und rgt Werte des Elternelements festzustellen. Mit diesen beiden Werten passt du deine Abfrage dementsprechend an

    http://www.klempert.de/nested_sets/artikel/#kap4
    http://dev.mysql.com/tech-resources/...ical-data.html
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      WHERE left > [linkswert der Kategorie] AND right < [rechtswert d. K.]

      Kommentar


      • #4
        Perfekt. Danke!

        Kommentar

        Lädt...
        X