Problem mit Navigation aus Datenbank

lordofscotland

Erfahrenes Mitglied
Hallo Community,

bin dabei für einen Verein eine HP zu bauen, und wollte dabei die Navigation nicht festeingebunden im Quellcode haben, sondern mir das ganze aus einer DB ausgeben lassen.

Das ganze klappte mit der ersten Rubrik auch sehr gut, und die anderen nachfolgenden klappen auch, nun sollte bei einer der anderen Rubriken ein Unterbereich eingefügt werden, und nun klappt meine Idee die ich dafür erstellt hatte nicht.

Quellcode:
PHP:
 $sql = "SELECT * FROM assv_navi WHERE linkid = '4' || linkid = '47' order by id asc";
 $res = mysql_query($sql);
 $anz = mysql_num_rows($res);
 while($z = mysql_fetch_row($res)) {
 if ($z[2] == "Crazy Steppers")
 print"<li class='nava'><a href='$z[1]' class='nav'><b>$z[2]</b></a></li>\n";
 if ($z[3] == "47")
 print"<li class='nav1'><a href='$z[1]' class='nav1'>$z[2]</a></li>\n";
 if ($z[2] != "Crazy Steppers" && $z[3] != "47")
 print"<li class='nav'><a href='$z[1]' class='nav'>$z[2]</a></li>\n";

hier gehts zu der Seite
findet Ihr das ganze gleich für Billard, dort klappt es.

Wo könnte mein Fehler liegen?

Danke im Vorraus

lordofscotland
 
Hi,

ich kann deine Vorgehensweise nicht ganz nachvollziehen. Auf der einen Seite versuchst du deine Navigation durch Auslagern in die Datenbank variabel zu halten, auf der anderen Seite hast du aber Hardkodierte abfragen in deinem Code... Nicht ganz der Sinn der Sache, oder?

Ich würde deshalb von Anfang an anders vorgehen:

- Tabelle "Navi"
-- id
-- headid
-- linkname
-- linktarget

Jetzt kannst du über eine sich rekursiv aufrufende Funktion die Navigation bis in die tiefsten Ebenen weiterführen... Die "headid" hat immer die "id" von der übergeordneten Kategorie. Und je nach dem wie tief du bist, das kannst du ja jetzt in der Funktion herausfinden, benutzt du nun eine andere Styleklasse.

Ist zwar keine direkt Antwort auf deine Frage, aber ich denke von Anfang an die bessere Vorgehensweise...

Gruß,
BigManu
 
Das Problem wurde erst vor kurzen gepostet.

Siehe dazu http://www.tutorials.de/forum/php/305482-probleme-mit-php-navigation-allg-verstaendnisfrage.html

Dort hab ich auch eine Rekusive Funktion gepostet die genau das Macht und mit Prefix arbeitet. Beliebig viele untereben bwz Hauptebenen.

Die Tabelle dafür ist ganz simple und einfach aufgebaut

Id,Name,Prefix

Id steht auf autocrement (Automatische hochzählung)
Name gibt den Menü namen an type varchar
Prefix die ebene struktur ist id und Prefix gleich dann ist eine Hauptmenü (Typ int)

Dadurch bei mir auch der Inhalt Dynamisch aufgerufen wird reichen für mich die 3 spalten aus.
Also eine link spalte ist unötig bei Dynamischen seiten.

Mfg Splasch
 
Zuletzt bearbeitet:
Zurück