Hallo.
Ich würde gerne ein Menü, das in einen DB hinterlegt ist rekursiv auslesen und als String in eine Variable schreiben. Wenn ich die einzelnen Punkte in der Funktion über echo ausgebe funktioniertes problemlos. Wenn ich aber versuche einen String zu erzeugen wird die Variable ständig überschrieben und ich bekomme nur die erste Ebene angezeigt. Ich verstehe zwar warum das so ist, aber ich habe leider kein Idee wie ich das Problem lösen könnte. Es wäre super, wenn mir da jemand auf die Sprünge helfen könnte.
Ich habe das ganze mal mit 4 Datensätzen getestet.
Link_1 (parent_id = 0)
Link_1.1 (parent_id = Link1)
Link_1.1.1 (parent_id = Link1.1)
Link_2 (parent_id = 0)
Ich würde gerne ein Menü, das in einen DB hinterlegt ist rekursiv auslesen und als String in eine Variable schreiben. Wenn ich die einzelnen Punkte in der Funktion über echo ausgebe funktioniertes problemlos. Wenn ich aber versuche einen String zu erzeugen wird die Variable ständig überschrieben und ich bekomme nur die erste Ebene angezeigt. Ich verstehe zwar warum das so ist, aber ich habe leider kein Idee wie ich das Problem lösen könnte. Es wäre super, wenn mir da jemand auf die Sprünge helfen könnte.
Ich habe das ganze mal mit 4 Datensätzen getestet.
Link_1 (parent_id = 0)
Link_1.1 (parent_id = Link1)
Link_1.1.1 (parent_id = Link1.1)
Link_2 (parent_id = 0)
PHP:
function get_menu($parent_id, $level=1, $menu_str="")
{
$QUERY = mysql_query("SELECT * FROM dcm1_sites WHERE site_parent_id='".$parent_id."'");
while($result = mysql_fetch_array($QUERY))
{
$menu_str .= $result[site_name]." ".$level."<br />";
get_menu($result[site_id], $level+1, $menu_str);
}
return($menu_str);
echo get_menu(0)
}
Zuletzt bearbeitet: