» ich möchte die Navigationspunkte einer Navigation mit 3 Ebenen
» dynamisch generieren lassen.
» Hierzu sollen die Punkte in einer MySql DB abgespeichert werden.
» Zudem sollen die Inhalte die zu den Punkten gehören auch in der
» DB gespeichert werden.
Ich würde Dir eine "flat"-Lösung vorschlagen, sprich: zwei simple Tabellen.
Tabelle Navi:
+----------+-------------+-----------+-----------+----------+
| ID | Key | URL | Title | Words |
+----------+-------------+-----------+-----------+----------+
| uint(10) | char(xxx) | char(255) | char(255) | char(255)|
| pri key | unique | | index | index |
+----------+-------------+-----------+-----------+----------+
| 1 | 000100000000|/s1/ |"ext.links"| foo,bar |
+----------+-------------+-----------+-----------+----------+
| 2 | 000100010000|/s1/s1/ |"software" | software |
+----------+-------------+-----------+-----------+----------+
| 3 | 000100010001|/s1/s1/s1/ |"linux" | os,linux |
+----------+-------------+-----------+-----------+----------+
| 4 | 000200000000| |"impressum"| impr. |
+----------+-------------+-----------+-----------+----------+
| 5 | 000300000000| |"texte" | texte |
+----------+-------------+-----------+-----------+----------+
| 6 | 000300010000| |"gedichte" | lyrik |
+----------+-------------+-----------+-----------+----------+
| 7 | 000300010001| |"rilke" | rilke |
+----------+-------------+-----------+-----------+----------+
| 8 | 000300020000| |"lieder" | lieder |
+----------+-------------+-----------+-----------+----------+
| 9 | 000300020001| |"abba" | abba |
+----------+-------------+-----------+-----------+----------+
Der "Trick" ist der Key. Zum Einen kannst Du mittels
SELECT * FROM Navi WHERE Key LIKE "/[0-9]{4}0{8}/"
die Hauptüberschriften auslesen, zum anderen mittels
SELECT * FROM Navi WHERE Key LIKE "0003*"
den Baum vom Texte-Bereich. Einfach dabei prüfen, wie viele "0000" am Ende stehen, um die Ebene zu erfahren.
"Words" sind Keywords zur Suche. Die Spalte kannst Du natürlich weglassen.
Die Inhalte-Tabelle ist noch simpler:
Tabelle Content:
+----------+----------+-----------+------------+
| ID | NaviID | Title | Content |
+----------+----------+-----------+------------+
| uint(10) | uint(10) | char(255) | mtext |
+----------+----------+-----------+------------+
| 1 | 9 |"Fernando" |"..." |
+----------+----------+-----------+------------+
| 2 | 9 |"Money" |"..." |
+----------+----------+-----------+------------+
Mit
SELECT Content.Title FROM Navi,Content
WHERE Navi.Key = '000300020001'
AND Navi.ID = Content.NaviID
kriegst Du dann die Titel Deiner Inhalte in der "Abba"-Ecke. Darauf legst dann halt den Link auf die PHP-Seite, die den Content anzeigt und per Get nur die ID von "Inhalte" braucht.
HTH
Carsten