Hallo Leute,
habe mir aus dem Tutorial:
http://www.tutorials.de/forum/php-tutorials/27144-menusystem-mit-php-und-mysql.html
eine NAvigation gebaut.
Leider bekomme ich ein Notice. Und zwar wenn ich eine Hauptkategorie mit z.b. 2 Unterkategorien erstelle die aufklappen sollen und dabei die Hauptkategorie anklicke.
Dann erscheint pro Unterkategorie jeweils der selbe Fehler:
Die Zeile ist folgende:
if ($row[0] == $wahl[$ebene+1]) { # Hier folgt der Aufruf der Funktion (ab in die Rekursion).....
Und hier mal der ganze Code. Vielleicht weis ja jemand wie man die Meldung weg bekommt.
Gruss
habe mir aus dem Tutorial:
http://www.tutorials.de/forum/php-tutorials/27144-menusystem-mit-php-und-mysql.html
eine NAvigation gebaut.
Leider bekomme ich ein Notice. Und zwar wenn ich eine Hauptkategorie mit z.b. 2 Unterkategorien erstelle die aufklappen sollen und dabei die Hauptkategorie anklicke.
Dann erscheint pro Unterkategorie jeweils der selbe Fehler:
Notice: Undefined offset: 2 in .....on line 73
Die Zeile ist folgende:
if ($row[0] == $wahl[$ebene+1]) { # Hier folgt der Aufruf der Funktion (ab in die Rekursion).....
Und hier mal der ganze Code. Vielleicht weis ja jemand wie man die Meldung weg bekommt.
PHP:
<?PHP
$link = mysql_pconnect("localhost","wwwrun");
$err = mysql_select_db("menusys",$link); # das sollte klar sein wir rufen unsere db an.
# und hier kommt der code kurz aber schwer zu verstehen ...
function baum($vater,$lpos) #vater welches menu wird gezeigt ; in lpos wird meine liste aufgebaut für den nächsten klick
{
global $link; # Der Link zur DB durch global auch in der Funktion bekannt.
global $wahl; # hier sind als Array die ids drin die aufgeklappt sind (kommt aus der var pos)
static $ebene = 0; # mit static erstelle ich eine Variable, die beim erneuten
# Aufruf der Funktion den Wert aus der Vorgängerfunktion behält.
# Die ist wichtig für die Rekursion. Der Startwert ist 0 und der
# wird hochgezählt beim Neuaufruf. Wenn ich also im Menu bei Apfel bin,
# ist der Wert bei 1.
$erg[$ebene] = mysql_query("SELECT * FROM `menu` WHERE `vater` = '$vater'",$link);
$menge = mysql_num_rows($erg[$ebene]);
# Das ist auch noch klar. Lese das aktuelle Menu aus der Datenbank aus und starte eine Schleife ...
for ($lo=0;$lo<$menge;$lo++) {
$row = mysql_fetch_row($erg[$ebene]); # Den Menu Eintrag auslesen, in $row[1]
# ist ja der menueintrag als text ..
$menu = "<a href=\"baum.php3?pos=".$lpos."|".$row[0]."\">".$row[1]."</a><br>";
# Hier bastel ich den Link zusammen. Am schwersten zu verstehen ist wohl
# pos=$lpos|$row[0], ich werde noch näher darauf eingehen.
if ($ebene > 0) { # Hier rücke ich einfach nur ein, je tiefer ich im Menu(Rekursion)
# bin, umso mehr Leerzeichen vorne dran
echo str_repeat(" ",$ebene);
}
echo $menu;
if ($row[0] == $wahl[$ebene+1]) { # Hier folgt der Aufruf der Funktion (ab in die Rekursion)
$ebene++; # ein Level hoch
baum($row[0],$lpos."|$row[0]");
$ebene--; # und wieder ein Level runter
}
}
}
Gruss