Georg Dieter: MySQL: Problem der Strukturauslesung / Nestet Sets-Baumstruktur

Hallo,

ich benutze für meine Kategoriestruktur die Nestet-Set-Methode um entsprechende Baumstruktur innerhalb meiner MySQL-DB abzubilden.
Als Grundlage habe ich mich hierbei der Erklährung von Arne Klempert (Link) bedient, wobei ich lediglich zusätzlich noch die Parent-ID mitspeichere.

Das Eintragen, ändern (verschieben) und löschen funktioniert auch alles fehlerfrei, doch leider habe ich ein Probem einen kompletten Weg, d.h. von Wurzel bis Blatt (um bei der Baumbezeichnung zu bleiben), abzubilden.

Hierbei wird mir immer nur durch die query die Wurzel ausgegeben.
Ich benutze hierbei die (auf meine Tabellen modifizierte) SELECT-Anweisung des Beispiels (Blick auf Teilbäume) von Arne Klempert (Link siehe oben).

Mein Code:
SELECT p.* FROM db_kategorien n, db_kategorien p WHERE n.lft BETWEEN p.lft AND p.rgt AND p.id = '$katid' AND p.katstatus > '0' ORDER BY n.lft

Die Variable "$katid" ist hierbei die ID des Zielpunktes (Blattes).

Zuerst hatte ich vermutet das meine while-Schleife zur Ergebnisausgabe (while($row = mysql_fetch_object($abfragequery))) fehlerhaft ist, habe aber über mysql_num-rows() feststellen müssen, das tatsächlich nur eine Zeile zurückgegeben wird, daher denke ich, das ich wohl irgendwie einen Denkfehler bei meiner SELECT habe...

Ich hoffe daher, das Ihr mir hier ein wenig helfend "unter die Arme greifen" könnt...

Gruss
Georg Dieter

  1. echo $begrüßung;

    [...] leider habe ich ein Probem einen kompletten Weg, d.h. von Wurzel bis Blatt (um bei der Baumbezeichnung zu bleiben), abzubilden.
    Hierbei wird mir immer nur durch die query die Wurzel ausgegeben.
    SELECT p.* FROM db_kategorien n, db_kategorien p WHERE n.lft BETWEEN p.lft AND p.rgt AND p.id = '$katid' AND p.katstatus > '0' ORDER BY n.lft

    Untersuche doch einmal, welchen Einfluss die Bedingungen zur Parent-ID und zum katstatus auf die gewünschten Datensätze hat.

    Die Variable "$katid" ist hierbei die ID des Zielpunktes (Blattes).

    Ein Blatt ist kein Parent.

    echo "$verabschiedung $name";