kerstel: Menü

Beitrag lesen

Hi,

ich will ein dynamisches Menü anhand einer Datenbank erstellen. Die Datenbank sieht folgendermaßen aus:

user | id | parent_id | Name
1    | 1  | 0         | Menü1
1    | 2  | 0         | Menü2
1    | 3  | 1         | Untermenü1 zu Menü1
1    | 4  | 1         | Untermenü2 zu Menü1
1    | 5  | 4         | Untermenü1 zu Untermenü2
usw.

Dazu habe ich mir folgende Klasse gebaut:

class CMS extends database {

function create_menu_tree ($user, $parentid = 0, $indent = 0) {
  $final_list = array ();
  $list = $this->get_menu_list ($user, $parentid);

// nun wird die liste abgearbeitet
  foreach ($list as $listitem) {
   $listitem["indent"] = $indent;
   $final_list[] = $listitem;
   $new_list = $this->create_menu_tree ($user, $listitem["id"], $indent + 1);

// wenn es Einträge für dieses Menü gibt
       if (count ($new_list) > 0) {
          $final_list = array_merge ($final_list, $new_list);
       }
    }
    return $final_list;
 }

function get_menu_list($user,$parentid) {
  $result=$this->execute("SELECT * FROM content_kategorie WHERE user_id='".$user."' AND family_id='".$parentid."'");
  if ($result) {
   while($row=$this->fetch_row($result)) {
    while(list($index,$wert)=each($row)) {
     $list=array(array("id"=>$row[0], "user"=>$row[1], "site"=>$row[3], "name"=>$row[4]));
    }
   }
  }
  return $list;
 }
}

Das Menü wird nun auch erstellt, aber immer nur für einen eintrag. d.h anhand der Tabelle oben sollte das Menü so aussehen:

Menü1
  Untermenü1
  Untermenü2
    Untermenü1 zu Untermenü2
Menü2

Aussehen tut es aber so:
Menü2

Nehme ich den Eintrag Menü2 aus der DB raus wird es richtig geschrieben.

Woran könnte das liegen?

Danke und Gruß

Kerstel