28dayslater
Mitglied
Ich habe ein Problem mit einer Menü-Klasse.
Hier mal die gesamte Klasse:
So, wenn jetzt Menü(0) aufgerufen wird, wird die oberste Ebene angezeigt. Sobald aber die Rekursion ins Spiel kommt,
dann wird der oberste Aufruf (Menü(0)) nicht zuende geführt.
Beispiel:
So sollte es sein:
Main1
-Sub1
-Sub2
Main2
Main3
So ist es:
Main1
-Sub1
-Sub2
Kann mir wer helfen? :-/
MFG
Hier mal die gesamte Klasse:
PHP:
<?php
class menu{
var $id;
var $db;
var $parent;
var $output;
function menu($id,$db){
$this->db= $db;
$this->id= $id;
$this->get_parent($id);
$this->get_menu(0);
}
function get_menu($id){
$this->db->query("SELECT * FROM menu WHERE top_id=".$id." ORDER BY pos DESC;");
while ($row=$this->db->fetch())
{
if ( ($this->id) == $row['id'] )
echo '<a href="?content='.$row['id'].'"><b>'.$row['name'].'</b></a><br>';
else
echo '<a href="?content='.$row['id'].'">'.$row['name'].'</a><br>';
if (!empty($this->parent[$row['id']])){
$this->get_menu($row['id']);
}
}
}
function get_parent($id){
$this->db->query("SELECT * FROM menu WHERE id=".$id.";");
while ($row=$this->db->fetch())
{
$this->parent[$row['id']]=$row['id'];
if ($row['top_id']!=0)
$this->get_parent($row['top_id']);
}
}
function output(){
return $this->output;
}
}
?>
So, wenn jetzt Menü(0) aufgerufen wird, wird die oberste Ebene angezeigt. Sobald aber die Rekursion ins Spiel kommt,
PHP:
if (!empty($this->parent[$row['id']])){
$this->get_menu($row['id']);
Beispiel:
So sollte es sein:
Main1
-Sub1
-Sub2
Main2
Main3
So ist es:
Main1
-Sub1
-Sub2
Kann mir wer helfen? :-/
MFG