Navigationsmenü aus Tabellen
Oliver Baer
- php
0 romy0 Thomas Schmieder
Hallo Leute,
ich möchte mir eine Navigation basteln, und zwar habe ich 3 Tabellen. In einer steht die Oberkategorie, in der 2ten die Unterkategorie und in der 3ten die anderen seiten, die es noch gibt.
Nun will ich das ganze folgendermassen ausgeben lassen:
Oberkategorie1
-unterkategorie1
-unterkategorie2
Oberkategorie2
-unterkategorie3
-unterkategorie4
...
Site1
Site2
Site3
Die Tabelle oberkategorie und die Tabelle unterkategorie sind miteinander über ein Feld verknüpft, d.h. in der Tabelle unterkategorie ist ne id aus der Tabelle oberkategorie.
Ich komme einfach auf keinen vernünftigen Lösungsansatz, vielleicht hat ja jemand von euch ne Idee wie man das realisieren könnte.
Vielen Dank schonmal...
Oliver Baer
Hallo Oliver,
Oberkategorie1
-unterkategorie1
-unterkategorie2
Oberkategorie2
-unterkategorie3
-unterkategorie4
...
Site1
Site2
Site3
mit 2 while-schleifen, die erste enthält den jeweiligen Datensatz der oberkategorie
innerhalb dieser while schleife, startest Du eine Abfrage ob es datensätze in der unterkategorie gibt, die diese id besitzen, wenn ja neue whileschleife, die diese abarbeitet.
while($result = mysql usw.)){
echo "oberkategorie"
//abfrage nach unterkategorie
while( $result = mysqlusw.) {
echo "die unterkategorie";
}
}
so in etwa nur die Abfragen müssen noch rein, wie es am besten geht, d.h ob du erst ein datenarray erstellst von der oberkategorie und dieses durchläufst oder ob du eine andere avriante nutzt ist deine Sache. Kenn mich mir mysql nicht aus... finde postgresql im handling bequemer
ciao
romy
Hallo Oliver,
das haben wir heute gerade fast fertig bekommen.
Ich schlage Dir vor:
ID_PAGE
ID_PARENT
PAGE_LEVEL (stellt die Einrücktiefe dar)
Alle Seiten stehen in einer Tabelle.
Mit MySQL fragst Du einfach im ersten Durchlauf alle Seiten mit ID_PARENT=0 ab. Die Seite gibt es nicht.
Bei der Anzeige musst Du dann die Abfrage auf ID_PARENT = ID_PAGE durchführen und das Unterarray besorgen.
Bei der Anzeige des Unterarrays musst du dann die Abfrage auf ID_PARENT = ID_PAGE der Unterseite ....
usw
PARENT SEITE
PARENT SEITE
PARENT SEITE
PARENT SEITE
PARENT SEITE
usw.
Ich würde mich außerdem darauf beschränken, maximal 1,5 Hierarchiestufen abzufragen, das bedeutet: Alle Seiten der obereren Klasse und nur die Seiten der 1. Unterklasse, deren Oberseite gerade angezeigt wird.
usw.
Dann muss man auch keine Angst vor der Rekursion haben.
Liebe Grüße aus http://www.braunschweig.de
Tom