Hi
Ich hab mich endlich wieder nach einiger Zeit dazu aufmuntern können für nen Freund eine Homepage zu machen. Der Typ will aber besonders viel, was ja nicht das Problem ist.
Der erste Knackpunkt ist das Menu. Es soll insgesamt 2 Ebenen haben. Weiters soll das Menu in einer Tabelle in der Datenbank gespeichert werden, damit er die Menupunkte dann bequem ändern kann etc. CMS-Style eben
Sprich:
Menu 1
- Menu 1.1
Menu 2
- Menu 2.1
- Menu 2.2
Jedenfalls habe ich bereits eine Datenbank angelegt und die zugehörige Tabelle bereits mit Werten gefüllt. Wie ich dann den Algorithmus angesetzt habe hats schon gescheitert. ich kann die erste Ebene wunderbar auslesen, aber sobald es darum geht, die Children zu suchen und richtig einzutragen funktioniert die ausgabe der Children nichtmehr.
Code:
$sql = "SELECT * FROM menu";
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
echo "Es konnten keine Einträge gefunden werden.";
}
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
if ($zeile['parent_id'] == "")
{
$ausgabe[1] = $ausgabe[1]."<li><a href='?site_id=".$zeile['site_id']."'>".$zeile['menu_name']." | </a></li>";
$sql_befehl = "SELECT * FROM menu";
$abfrage = mysql_query($sql_befehl);
while($row = mysql_fetch_array($abfrage, MYSQLASSOC))
{
if($row['parrent_id'] == $zeile['site_id'])
{
$ausgabe[3] = $ausgabe[3]."<li><a href='?site_id=".$row['site_id']."'>".$row['menu_name']." | </a></li>";
}
}
$ausgabe[1] = $ausgabe[1]."<ul>".$ausgabe[3]."</ul>";
}
}
$ausgabe0 = "<ul>";
$ausgabe2 = "</ul>";
echo $ausgabe0.$ausgabe[1].$ausgabe2;
Wenn sich jemand erbarmen könnte da nen Blick drauf werfen könnte und mir sagen könnte wieso die Ausgabe nicht geht dann wäre ich sehr dankbar dafür.
Aja die Struktur der Menu-Tabelle hät ich ganz vergessen:
1. Spalte: id (Laufvariable)
2. Spalte: site_id (Seitenindex - mit Hilfe dieser Nummer erzeuge ich dann den passenden Content über eine andere Funktion)
3. Spalte: parent_id (Enthällt die site_id wo der aktuelle Eintrag untergeordnent ist. Wenn dieser Eintrag leer ist, dann gibts es kein Parent, also Hauptmenüpunkt)
4. Spalte: menu_name (der dann angezeigte Name)
Herzlichen Dank
Stunk70