luckger: NestedSets

Beitrag lesen

Hallo zusammen,

ich versuche mich gerade an Nested Sets und versuche Folgendes zu bewerkstelligen.

In der Datenbank liegt eine Tabelle mit der gesamten Navigationsstruktur. Die Datenbankstruktur mit den Daten gibts hier (http://www.weingut-cuntz.de/db_struktur.jpg)

Ich möchte nun folgendes machen:
Unter dem Punkt Inhalte stehen zwei Unterpunkte: Seiteninhalte und Aktuelles. Darunter stehen wiederum zwei Unterpunkte, bei denen nur im Feld tasks etwas eingetragen ist.

Ich möchte nun nur die zwei tasks Unterpunkte ausgeben, wenn der User sich auf der übergeordneten Seite befindet.

Folgendes wäre mein Ansatz:

  
    SELECT  
     t1.*,  
     COUNT(*) AS ebene  
    FROM  
     admin_v3 AS t1,  
     admin_v3 AS t2  
    WHERE  
     t1.task != '' AND  
     t1.rgt BETWEEN t1.lft AND t2.rgt  
  
    GROUP BY  
     t2.lft  
    HAVING  
     t1.lft>" .$path[$ebene]['lft'] ." AND  
     t1.rgt<" .$path[$ebene]['rgt'] ." AND  
     ebene = $ebene+1  
    ORDER BY  
     t1.lft ASC";  

--------------
Zur Erklärung:
--------------
$path[$ebene]['lft'] und $path[$ebene]['rgt'] sind die bezeichnen selbige Elemente der gerade aufgerufenen Seite, wären also im Beispiel Seiteninhalte  15 und 22.

$ebene ist die aktuelle Ebene der gerade aufgerufenen Seite. In diesem Fall müsste das, wenn ich mich nicht irre, 2 sein.

------------
Das Problem:
------------
Das Problem an der ganzen Geschichte ist nur, dass wenn ich den Code so verwende, nur ein Unterpunkt ausgelesen wird.

Letztendlich sollen dann also nur die zwei Unterpunkte vfdffv und Task ausgegeben werden - und das auf keiner übergeordneten Seite.

Hat jemand eine Ahnung wo mein Fehler liegt? Ich komm einfach nicht weiter...

Vielen Dank schonmal im voraus und noch einen schönen Feiertag bzw. evtl. Brückentag,

luckger