HTML TreeMenu & Mysql

ShadowDancerII

Новичок
HTML TreeMenu & Mysql

Добрый день.

Пытаюсь совместить HTML TreeMenu & Mysql

к сожалению не силен в обьектном програмировании
в данном примере мечатается меню с глубиной вложения 3 раздела.

пытался написать рекурсивную функцию, но не знаю как ей передать все необходимые параметры.


Помогите пожалуйста.

PHP:
$menu00  = new HTML_TreeMenuXL();
$nodeProperties = array("icon"=>"folder.gif");
$q = "SELECT * FROM shop_groups WHERE shop_groups_id_parent = 0";
$res = mysql_query($q);
$x=0;
while($data=mysql_fetch_array($res)){
$node[$x] = new HTML_TreeNodeXL("$data[shop_groups_name]", "$url/components/catalog/prodlist.php?id=$data[Id]", $nodeProperties);
$menu00->addItem($node[$x]);
$q2 = "SELECT * FROM shop_groups WHERE shop_groups_id_parent = '$data[Id]'";
$res2 = mysql_query($q2);
while($data2=mysql_fetch_array($res2)){
$nx[$x] = &$node[$x]->addItem(new HTML_TreeNodeXL("$data2[shop_groups_name]", "$url/components/catalog/prodlist.php?id=$data2[Id]", $nodeProperties));
$q3 = "SELECT * FROM shop_groups WHERE shop_groups_id_parent = '$data2[Id]'";
$res3 = mysql_query($q3);
while($data3=mysql_fetch_array($res3)){
$nx[$x]->addItem(new HTML_TreeNodeXL("$data3[shop_groups_name]", "$url/components/catalog/prodlist.php?id=$data3[Id]", $nodeProperties));
}
}	

$x++;
} // while

$menu00->addItem($node0);
$example044 = &new HTML_TreeMenu_RigidXL($menu00, array("images"=>"", "defaultClass"=>"auto")); 
$example044->printMenu();
 

dilan

Новичок
PEAR - TreeMenu.php
PHP:
 function TreeMenu()
 {
   global $db;

    $icon = 'folder.gif';
    $expandedIcon = 'folder-expanded.gif';

    $sql = "SELECT * FROM `table_name`";
    $res = $db->query($sql);

    $menu = new HTML_TreeMenu();

    while($row = $res->fetchRow(DB_FETCHMODE_ASSOC))
    {
     // id
     $id = $row['id'];
     
     // родитель id     
     $rootId = $row['root_id'];
     
     // хранит инф. о том есть ли вложенные в данный Id др. элементы
     // впринципе можно не хранить данный элемент в БД а вычислять в процессе
     $subId = $row['sub_id'];
     
     // заголовок
     $title = $row['title'];
     
          
      if($rootId==0)
      {
         $node = 'node'.$id;
         $$node = new HTML_TreeNode(array(
                       					  'text' => "$title",
                       					  'link' => "$id", 'icon'=>$icon));

         $menu->addItem($$node);
       }


      if($rootId!=0 && $subId!=0)
      {
         $node = 'node'.$id;
         $node_root = 'node'.$rootId;
         $$node = &$$node_root->addItem(new HTML_TreeNode(array(
                       'text' => "$title", 'link' => "$id", 'icon'=>$icon)));

       }

      if($rootId!=0 && $subId==0)
      {
         $node = 'node'.$rootId;

         $$node->addItem(new HTML_TreeNode(array(
                       'text' => "$title", 'link' => "$id", 'icon'=>$expandedIcon)));
       }

     }//while

    $options = array('images' => 'adminImages');
    $treeMenu = &new HTML_TreeMenu_DHTML($menu, $options);

    ob_start();
      $treeMenu->printMenu();
      $menu = ob_get_contents();
    ob_end_clean();

   return $menu;

  }
 
Сверху