Submenu erstellen

alex130

Erfahrenes Mitglied
Hallo,
ich wollte mal fragen, ob mir vielleicht jemand helfen kann, bei der Umsetzung eines Submenus, also ich habe mir das schon ein bisschen überlegt, ich mache in meiner Tabelle eine zusätzliche Spalte "main_id" oder so und wenn es ein Unterpunkt ist, dann trage ich hier die ID des Hauptpunktes ein.
Doch ich weiß nicht, wie ich den PHP teil dann mache, also wenn man auf Kontakt klickt und das Untermenü ist z.B. "Impressum", dann soll der Unterpunkt angezeigt werden.
Kann mir bitte jemand helfen?
Danke
 
Die Tutorials sind für Anfänger glaub ich zu schwer. Ob ich das hier aber besser hinkriege ....
Naja also du hast schon ganz richtig gesagt:

Tabelle könnte so aussehen:
id | pid | name
1 | 0 | Neues
2 | 0 | Altes
3 | 1 | Irgendwas
4 | 1 | Noch irgendwas
5 | 2 | Etwas Altes

Zuerst fragst du die Einträge ab, die keine pid(parent_id ~ eltern) haben, zum beispiel so:

PHP:
<?php
mysql_query( "SELECT id,name FROM menu WHERE pid=0;" );
?>

Um jetzt ein Submenu anzuzeigen, musst du eigentlich ein ähnliches Query ausführen:

PHP:
<?php
mysql_query( "SELECT id,name FROM menu WHERE pid=".$id_des_parents.";" );
?>

Um das jetzt nochmal in Zusammenhang zu bringen mit der Beispiel-Tabelle:

Im ersten Schritt sieht dein Menü so aus:
Parent:
Name | Relativer Link
Neues | ?id=1
Altes | ?id=2


Klicke ich jetzt auf "Neues" bekomme ich sowohl .....
Parent:
Name | Relativer Link
Neues | ?id=1
Altes | ?id=2

...als auch ein Array mit den Childs , da das 2 Query wie folgt lautet:
PHP:
<?php
mysql_query( "SELECT id,name FROM menu WHERE pid=".$_GET['id'].";" );
?>

$_GET['id'] ist ja 1, weil es über den Link übergeben wurde, daraus folgt dann folgende Ausgabe:

Child:
Name | Relativer Link
Irgendwas | ?id=3
Noch irgendwas | ?id=4

Diese beiden Arrays kannst du dann verarbeiten.

Am besten ist es natürlich, dieses Problem rekursiv ( eine Funktion die sich selbst immer wieder aufruft ) zu lösen, da du dann nicht nur ein Child haben kannst, sonder eine unendlich in die Tiefe gehende Menü-Struktur.

mfg
 
Hallo,
danke für die Antworten, mit dem Submenu hab ich eigtl. auch keine probleme, mein einziges Problem ist, wenn ich es so mache, dass ich abfrage, welche ID die derzeitige Seite hat und dann Abfrage, welche Navi Punkte in parent_id die jetzige ID haben, dann funktioniert es, aber wenn ich mehrere Unterpunkte habe und ich bin gerade bei Impressum (gehört auch zu Kontakt), dann werden die Unterpunkte nicht angezeigt.
Wisst ihr was ich meine?
Danke
 
Du meinst, wenn das Menü tiefer geht?

Main
|--------SubMenu
|--------SubMenu
|----------SubSubMenu
|----------SubSubMenu
|--------SubMenu
|----------SubSubMenu
|----------SubSubMenu
|----------SubSubSubMenu

So etwas oder was? Falls das dein Problem ist, ich hab das gelöst:
Rekursiv alle Parents nachschauen bis Parent=0 und die IDs in ein Array....dann kannste später beim rekursiven Anzeigen des Menüs dann jeweils die Einträge holen, die als Parent-ID die Werte im Array haben!
 
Zurück