zoukankan      html  css  js  c++  java
  • PHP数据库树的遍历方法

    PHP数据库树的遍历方法

    代码如下:

    <?php
    session_start();
    define ('P_S', PATH_SEPARATOR);
    define ('ROOT', "./");
    set_include_path(ROOT .P_S .'Zend' .P_S .ROOT.get_include_path());
    //加载ZEND 框架
    require_once ROOT.'Zend/Loader.php';
    require_once 'usercheck.php';//加载访问权限
    Zend_Loader::loadFile('function.class.php', $dirs='class/', $once=false);//加载函数
    Zend_Loader::loadClass('Zend_Db');//加载数据库类
    Zend_Loader::loadClass('Zend_Config_Ini');//加载配置类
    $config = new Zend_Config_Ini('config.php', 'general');//创建配置对象
    $db = Zend_Db::factory($config->db->adapter,$config->db->config->toArray());//创建数据库对象


    $select=$db->select();
    $select->from('ResClass',array('lsh','name'));
    $select->where('steps = 1');
    $rs=$db->fetchAll($select);

    foreach ($rs as $res){
         
          echo '&nbsp;&nbsp;&nbsp;&nbsp;'.$res['lsh'].$res['name']."<br>";
      
          
          Visit($res['lsh'],1);

         
    }
       
         
        function Visit($nodeid,$stept){
       
                          global $db;
       
                          $recordset = "SELECT lsh,name FROM ResClass WHERE parent=".$nodeid;  //搜索nodeid的所有下层节点
       
                          $rs=$db->fetchAll($recordset);
       
       
                          foreach($rs as $rss){
                         
                                        if(!$rss)
                                       
                                                 return;  //已经是叶子节点,直接返回
                                                 
                                        else{
                                       
                                                   for ($i=0;$i<4*$stept;$i++){
                                                 
                                                              echo "&nbsp;";
                                                           
                                                     }
                                                  
                                                echo '&nbsp;&nbsp;&nbsp;&nbsp;'.$rss['lsh'].$rss['name']."<br>";
                                             
                                                Visit($rss['lsh'],$stept+1);
                                             
                                        }
                                       
                              }
       
       
    }
    ?>

  • 相关阅读:
    如何在SQL/400中计算两日期间的天数
    委托、事件与Observer设计模式
    C# 杂项
    泛型学习(二)
    委托
    操作符重载 (operator)
    一个解决方案多个项目
    将方法绑定到委托
    事件
    密封方法 密封类(sealed)
  • 原文地址:https://www.cnblogs.com/fengju/p/6173924.html
Copyright © 2011-2022 走看看