dedlfix: Nested Sets - Ebene auslesen (SQL)

Beitrag lesen

Hi!

Aber ich verstehe überhaupt nicht warum die Anzahl der Oberhalb liegenden?

  • Oberkategorien (1,18)
      - Kommunikation (2,11)
        - Kommunikationstheorien (3,8)
          - Paul W. (4,5)
          - Schulz von Thun (6,7)
        - Kommunikationswissenschaften (9,10)
      - Sport (12,13)
      - Esoterik (14,15)
      - Lifestyle (16,17)

Oberkategorien ist in Level/Ebene 1, Kommunikation, Sport, Esoterik und Lifestyle sind Level 2. Sie haben alle genau eine übergeordnete Kategorie, also ist deren Level 1 + 1. Kommunikationstheorien und Kommunikationswissenschaften sind in Level 3 (= zwei übergeordnete + 1)

So. Ich möchte folgendes auslesen: Kommunikation, Sport, Esoterik, Lifestyle.

Dann fragst du alle ab, deren Level gleich 2 ist (wenn es als extra Feld gepflegt ist) oder beim Berechnen 2 ergibt.

Ich möchte _nicht_ auslesen was _in_ diesen Kategorien ist (z.B. Kommunikationstheorien.

Dazu musst du die mit Level 3 (oder allgemein gesagt: ungleich 2) ignorieren. Das passiert ja automatisch, wenn du auf 2 vergleichst.

Zuerst lese ich mit einem Select die LFT und RGT Werte von "Oberkategorien" aus. Also $lft=1 und $rgt=18.

Das brauchst du nur, wenn du nur einen Teilbaum betrachten willst.

Vielleicht haben wir ja ein Verständnis-Problem meiner seits was Ober/Unterhalb bedeutet.
Oberkategorien ist für mich oberhalb von Kommunikation. P. Watzlawik ist für mich unterhalb von Kommunikation.

Das passt.

Wenn ich also jetzt Kommunikation, Sport etc. auslesen möchte - da sagt irh mir ich soll die Knoten oberhalb zählen? Da ist aber doch nur noch "Oberkategorien".

Das musst du machen, um die Ebene zu ermitteln (wenn sie nicht als Extrafeld gepflegt ist). Andererseits musst du dich "seitwärts durchhangeln", was aber nicht sehr effektiv ist. Dazu müsstest du den ersten Knoten der ebenen ermitteln, was noch einfach ist, dann von dessen RGT+1 auf das LFT des Geschwisters schließen, und so weiter und so fort. Das RGT lässt sich nicht wirklich errechnen, der Abstand zwischen LFT und RGT hängt ja von der Anzahl der Kinder ab und ist deshalb pro Knoten individuell.

Ich bin einfach schwer verwirrt. Ich bekomms nicht hin.

Irgendeins der Tutorials hatte doch auch Beispiele mit Extra-Feld für das Level ... find ich grad nicht. Das Extrafeld ist jedenfalls beim Abfragen von Vorteil, weil dadurch die ständige Zählung der übergeordneten Knoten wegfällt. Das erkauft man sich aber durch einen erhöhten Aufwand bei Änderungen im Baum.

Lo!