Kategorien
am 05.03.2007 20:20:00 von m.raupe
Ich habe eine Tabelle Kategorien:
ID,Titel,Haupt_Kategorie.
Es sind im Prinzip unendlich viele Unterkategorien möglich:
1 , "Test" , NULL
2 , "U1.1", 1
3, "U1.2", 1
4 , "U1.2.1", 3
usw.
d.h. Haupt_Kategorie bezeichnet einfach die "Mutter"- Kategorie.
Ich möchte jetzt z.B. wissen, wie die oberste (1.) Kategorie von "U1.2.1"
lautet.
Das wäre also "Test".
kann ich das mit einer einzigen SQL- Abfrage lösen?
Momentan habe ich es so gelöst:
WHILE($row['haupt_kategorie']!='')
$row=Abfrage("SELECT ... WHERE id=$row['haupt_kategorie']);
Am Ende habe ich dann die oberste Kategorie in $row (die Darstellung ist
vielleicht etwas schematisch, aber ich denke es ist klar, was ich meine,
oder?)
Gibt es da eine einfache Lösung, die mit einer SQL- Abfrage zu lösen ist?
LG, Michi
Re: Kategorien
am 06.03.2007 10:33:47 von Johannes Vogel
Hi Michi
michael ra. wrote:
[Klassische Baumstruktur]
> Gibt es da eine einfache Lösung, die mit einer SQL- Abfrage zu lösen ist?
Du interessierst dich für Nested Set Bäume.
Nested Sets Verschachtelte Bäume mit MySQL
http://www.klempert.de/nested_sets/artikel/
HTH, Johannes
Re: Kategorien
am 07.03.2007 16:10:06 von m.raupe
Danke!
Ist wirklich eine Tolle Sache.
Eine Frage hab ich aber noch dazu:
Wie kann ich alphabetisch sortieren?
Ich habe eine Tabelle
id,lft,rgt,name
Das auslesen funktioniert super, aber die Reihenfolge ist immer so, wie ich
sie eingegeben hab.
also z.B:
-Ö
--Stmk.
---Graz
-----Lend
-----Gries
--OÖ
-D
Ich habs irgendwie nicht hinbekommen, das alphabetisch zu sortieren...
Die Abfrage:
SELECT n.id,n.name
COUNT(*)-1 AS level
FROM tabelle AS n, tabelle AS p
WHERE n.lft BETWEEN p.lft AND p.rgt
GROUP BY n.lft
ORDER BY n.lft
Hat jemand eine Idee?
LG, Michi
"Johannes Vogel" schrieb im Newsbeitrag
news:2e63e$45ed3573$50da443b$30937@news.hispeed.ch...
> Hi Michi
>
> michael ra. wrote:
> [Klassische Baumstruktur]
>> Gibt es da eine einfache Lösung, die mit einer SQL- Abfrage zu lösen ist?
>
> Du interessierst dich für Nested Set Bäume.
>
> Nested Sets Verschachtelte Bäume mit MySQL
> http://www.klempert.de/nested_sets/artikel/
>
> HTH, Johannes