hmm.. ok, ich schreib mal eines
Deine Tabelle:
Code:
`id` int(11) NOT NULL auto_increment,
`name` varchar(250),
PRIMARY KEY (`id`)
Wird um die Spalte "ParentForumID" int(11) Default-Wert: 0 erweitert. Dann kommt der 1. Datensatz:
Code:
ID | Name | ParentForumID
1 | Allgemein | 0
Dieser Datensatz ist also kein Child-Element, sondern ein Parent-Element. Sie sind also auf der höchsten Ebene. Davon kann es ganz viele geben:
Code:
ID | Name | ParentForumID
1 | Allgemein | 0
2 | Spiele | 0
3 | Hardware | 0
Diese Foren liegen alle auf der selben Ebene.
Eien Ausgabe könnte wie folgt aussehen:
Code:
Home
- Allgemein
- Spiele
- Hardware
Jetzt erweitern wir unser Konstruk mal auf eine Ebene tiefer!
Code:
ID | Name | ParentForumID
1 | Allgemein | 0
2 | Spiele | 0
3 | Hardware | 0
4 | Fun | 1
5 | Website | 1
6 | Treiber | 3
7 | Anno 1701 | 2
Wir haben also verschiedene Foren auf Ebene 2. Bildlich dargestellt sähe dies so aus:
Code:
Home
- Allgemein
- Fun
- Website
- Spiele
- Anno 1701
- Hardware
- Treiber
So kann man schön strukturiert in einer Tabelle alle Foren abbilden. Erweitern kann man dies noch mit einer - wie ich sie nenne - AnzeigeID, welche bestimmt, in welcher Reihenfolge etwas angezeigt werden soll. Die Tabelle wird also um die Spalte "AnzeigeID" erwitert mit in(11). Diese kann automatisch durch eine COUNT()-Logik befüllt werden. Dabei darf bei gleicher ParentForumID jeweils nur eine AnzeigeID vorkommen. Die könnte dann z.B. so in der Tabelle aussehen:
Code:
ID | Name | ParentForumID | AnzeigeID
1 | Allgemein | 0 | 3
2 | Spiele | 0 | 1
3 | Hardware | 0 | 2
4 | Fun | 1 | 2
5 | Website | 1 | 1
6 | Treiber | 3 | 1
7 | Anno 1701 | 2 | 1
Und die dazu passende Beispiel-Ausgabe:
Code:
Home
- Spiele
- Anno 1701
- Hardware
- Treiber
- Allgemein
- Website
- Fun
Ich glaube damit sind alle nötigen Vorbereitungen auf Datenbankseite erledigt und der Weg sollte frei sein für die programmatische Umsetzung.
Weitere Fragen beantworte ich auch weiterhin *g*
Gruß Radhad