Autor |
Nachricht |
newbie
Threadersteller
Dabei seit: 15.01.2003
Ort: Müchen, Moosach
Alter: 41
Geschlecht:
|
Verfasst Mi 30.03.2005 05:55
Titel [PHP] Multilevel-Menü aus der Datenbank kreieren |
|
|
Hi,
Ich hab vor mein eigenes kleines CMS zu bauen. Nun habe ich folgendes Problem:
Auf der Seite gibts ein Menü das so aufgebaut ist
Code: |
<ul>
<li>Menüpunkt1</li>
<li>Menüpunkt2</li>
<li>Menüpunkt3</li>
</ul>
|
der content steht in mysql vereinfacht so:
Code: |
id überpunkt linktitel content
---------------------------------------------------------------------------
1 0 Menüpunkt1 main1main1
2 1 Submenü1 sub1sub1sub1
3 0 Menüpunkt2 main2main2
4 1 Submenü2 sub1nummer2
|
Soweit so logisch. Menüpunkt1 hat also 2 Untermenüpunkte und es gibt 2 Hauptmenüpunkte. Die ID definiert meine Seitenstruktur, gehe ich also auf
www.domain.de/index.php?id=1
Sollen 2 Hauptmenüpunkte da stehen und der zur ID gehörige soll so <li class="aktiv"> Menüpunkt2</li> aussehen. So weit krieg ich das auch noch einigermassen hin.
Gehe ich jetzt allerdings auf www.domain.de/index.php?id=2 soll die liste so aussehen:
Code: |
<ul>
<li class="aktiv">Menüpunkt1</li>
<li class="aktiv">Submenüpunkt1</li>
<li>Submenüpunkt2</li>
<li>Menüpunkt2</li>
<li>Menüpunkt3</li>
</ul>
|
das script soll also erkennen dass diese ID eine Untergruppe ist (zu id 1) und sich dementsprechend einrücken.
Ich hoff das versteht man einigermassen
Wär wirklich dankbar wenn jemand ne idee hat wie ich das hinbekomm..
achja, pear steht mir leider nicht zur verfügung (ich hatte mir ein "nestedset" ergoogelt, das aber per benötigt)
|
|
|
|
|
Menschlicher
Dabei seit: 24.08.2004
Ort: Hannover
Alter: -
Geschlecht:
|
Verfasst Mi 30.03.2005 06:22
Titel
|
|
|
Soweit ich das verstehe ist das doch eine einfache Abfrage, quasi:
Code: |
$li_active = (überpunkt gleich 1 wenn id gleich $_GET['id']) ? ' class="aktiv"' : '';
<ul>
<li$active>MP1</li>
<li$active>MP2</li>
usw.
</ul> |
Zuletzt bearbeitet von shakadi am Mo 11.04.2005 19:32, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Backware
Dabei seit: 09.12.2004
Ort: bei Köln
Alter: 38
Geschlecht:
|
Verfasst Mi 30.03.2005 06:59
Titel
|
|
|
Naja für eine Multidimensionale Navigation solltest du Sessions benutzen um zu überprüfen, welche Hauptmenüpunkte offen sind und welche nicht...... denn mit >einer< übergabe wirste da schnella uf probs stoßen außer natürlich du willst dann die datenbank der navigation rekursiv durchgehen... indem du zuerstmal den eintrag aus der db ausliest und dann dich an den überpunkten entlanghangelst......
|
|
|
|
|
saucer
Dabei seit: 19.05.2002
Ort: München
Alter: 43
Geschlecht:
|
Verfasst Mi 30.03.2005 07:19
Titel
|
|
|
Menschlicher hat geschrieben: | Soweit ich das verstehe ist das doch eine einfache Abfrage, quasi:
$li_active = (überpunkt gleich 1 wenn id gleich $_GET['id']) ? ' class="aktiv"' : '';
<ul>
<li$active>MP1</li>
<li$active>MP2</li>
usw.
</ul> |
ich versteh das eher so:
Code: |
<ul>
<li$active>MP1</li>
<li$active>Sublevel1</li>
<li>Sublevel2</li>
<li>MP2</li>
usw.
</ul> |
und backware - er braucht doch keine sessions?
Wenn er seine ID bekommt schaut er einfach in der Datenbank nach zu welchem Hauptpunkt die gehört und der Hauptpunkt sowie die ID werden auf $active gesetzt?
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mi 30.03.2005 07:20
Titel
|
|
|
NIEMALS rekursive Queries an Datenbanken senden. Das erzeugt viel zu viel Last...
|
|
|
|
|
Waschbequen
Account gelöscht
Ort: -
|
Verfasst Mi 30.03.2005 08:02
Titel
|
|
|
XSchinkenX hat geschrieben: | NIEMALS rekursive Queries an Datenbanken senden. Das erzeugt viel zu viel Last... |
Ach Quark, wenn man's richtig anstellt geht das alles.
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mi 30.03.2005 08:30
Titel
|
|
|
Das ist niemals richtig angestellt...
|
|
|
|
|
Waschbequen
Account gelöscht
Ort: -
|
Verfasst Mi 30.03.2005 09:00
Titel
|
|
|
Wegen ner Hierarchie mit 5 Ebenenen - und mehr isses auf Websites in 99% der Fälle nicht - braucht man sich doch keinen Kopf wegen der Performance machen. Außerdem kann mans doch cachen. Oder kann PHP das nicht?
|
|
|
|
|
|
|
|
Ähnliche Themen |
Problem Multilevel Liste Indesign CC (2014)
Kugel kreieren
wie erstelle ich diesen menü effekt bzw. das gesammte menü?
CSS Menü - Finde nicht das richtige Menü
datenbank ?
SQL-Datenbank
|
|