php无限级分页代码

php无限级分页代码class Tree{ public $data=array(); public
$cateArray=array(); function Tree() { } function setNode ($id, $parent,
$value) { $parent = $parent?$parent:0; $this-data[$id] = $value;
$this-cateArray[$id] = $parent; } function getChildsTree($id=0) {
$childs=array(); foreach ($this-cateArray as $child=$parent) { if
($parent==$id) { $childs[$child]=$this-getChildsTree($child); } }
return $childs; } function getChilds($id=0) { $childArray=array();
$childs=$this-getChild($id); foreach ($childs as $child) {
$childArray[]=$child;
$childArray=array_merge($childArray,$this-getChilds($child)); } return
$childArray; } function getChild($id) { $childs=array(); foreach
($this-cateArray as $child=$parent) { if ($parent==$id) {
$childs[$child]=$child; } } return $childs; } //单线获取父节点
function getNodeLever($id) { $parents=array(); if
(key_exists($this-cateArray[$id],$this-cateArray)) {
$parents[]=$this-cateArray[$id];
$parents=array_merge($parents,$this-getNodeLever($this-cateArray[$id]));
} return $parents; } function getLayer($id,$preStr=’|-‘) { return
str_repeat($preStr,count($this-getNodeLever($id))); } function getValue
($id) { return $this-data[$id]; } // end func}/*$Tree = new
Tree(请选择分类);//setNode(目录ID,上级ID,目录名字);$Tree-setNode(1, 0,
‘目录1’);$Tree-setNode(2, 1, ‘目录2’);$Tree-setNode(5, 3,
‘目录5’);$Tree-setNode(3, 0, ‘目录3’);$Tree-setNode(4, 2,
‘目录4’);$Tree-setNode(9, 4, ‘目录9’);$Tree-setNode(6, 2,
‘目录6’);$Tree-setNode(7, 2, ‘目录7’);$Tree-setNode(8, 3,
‘目录8’);//print_r($Tree-getChildsTree(0));//print_r($Tree-getChild(0));//print_r($Tree-getLayer(2));$category
= $Tree-getChilds();//遍历输出foreach ($category as $key=$id){ echo
$id.$Tree-getLayer($id, ‘|-‘).$Tree-getValue($id)./n;}*/?

    /**
     * Description
     * @var       
     * @since     1.0
     * @access    private
     */
    var $parent    = array();

//读取所有父类下面的子类
//$f顶级分类从什么开始,$s样式
 function php100_dx($f=0,$s=””){
   $sql=”select * from fl where fid=$f”;
   $q=mysql_query($sql);
   $s=$s.”-“;
   while($rs=mysql_fetch_array($q)){
     echo “
$s”.$rs[‘name’];
  flt($rs[‘id’],$s);
     }
   }

    
    /**
     * Short description. 
     *
     * Detail description
     * @param      none
     * @global     none
     * @since      1.0
     * @access     private
     * @return     void
     * @update     date time
    */
    function getChilds ($id = 0)
    {
        $child = array($id);
        $this->getList($child, $id);

复制代码 代码如下:
//new Tree(根目录的名字);
//根目录的ID自动分配为0
$Tree = new Tree(‘根目录’);

//遍历输出
foreach ($category as $key=>$id)
{
    echo $Tree->getLayer($id, ‘|-‘).$Tree->getValue($id).”
n”;
}

    /**
     * Short description. 
     *
     * Detail description
     * @param      none
     * @global     none
     * @since      1.0
     * @access     private
     * @return     void
     * @update     date time
    */
    function getParents ($id)
    {
        while ($this->parent[$id] != -1)
        {
            $id = $parent[$this->layer[$id]] =
$this->parent[$id];
        }

    /**
     * Description
     * @var       
     * @since     1.0
     * @access    private
     */
    var $layer    = array(-1=>-1);

PHP代码:

    /**
     * Description
     * @var       
     * @since     1.0
     * @access    private
     */
    var $child    = array(-1=>array());

            if ($this->child[$id]) $this->getList($tree, $id);
        }
    } // end func

复制代码 代码如下:
//无限分类,从子类找所有父类
//$id 子类ID
 function php100_xd($id){
   $sql=”select * from fl where id=’$id'”;
   $q=mysql_query($sql);
   $rs=mysql_fetch_array($q);
   $rs[‘fid’]==0 ? “” : fl($rs[‘fid’]);
   echo $rs[‘name’].”-“;
   }

        if (!isset($this->layer[$parent]))
        {
            $this->layer[$id] = 0;
        }
        else
        {
            $this->layer[$id] = $this->layer[$parent] + 1;
        }
    } // end func

PHP无限分类-PHP100代码

    /**
     * Short description. 
     *
     * Detail description
     * @param      none
     * @global     none
     * @since      1.0
     * @access     private
     * @return     void
     * @update     date time
    */
    function getChild ($id)
    {
        return $this->child[$id];
    } // end func

    /**
     * Short description. 
     *
     * Detail description
     * @param      none
     * @global     none
     * @since      1.0
     * @access     private
     * @return     void
     * @update     date time
    */
    function setNode ($id, $parent, $value)
    {
        $parent = $parent?$parent:0;

复制代码 代码如下:
/**
 * @author        YangHuan
 * @datetime    
 * @version        1.0.0
 */

    /**
     * Short description. 
     *
     * Detail description
     * @param      none
     * @global     none 
     * @since      1.0
     * @access     private
     * @return     void
     * @update     date time
    */
    function getList (&$tree, $root= 0)
    {
        foreach ($this->child[$root] as $key=>$id)
        {
            $tree[] = $id;

        $this->data[$id]            = $value;
        $this->child[$id]            = array();
        $this->child[$parent][]        = $id;
        $this->parent[$id]            = $parent;

/**
 * Short description.
 *
 * Detail description
 * @author       
 * @version      1.0
 * @copyright    
 * @access       public
 */
class Tree
{
    /**
     * Description
     * @var       
     * @since     1.0
     * @access    private
     */
    var $data    = array();

    /**
     * Short description. 
     *
     * Detail description
     * @param      none
     * @global     none
     * @since      1.0
     * @access     private
     * @return     void
     * @update     date time
    */
    function getValue ($id)
    {
        return $this->data[$id];
    } // end func

    /**
     * Short description. 
     *
     * Detail description
     * @param      none
     * @global     none
     * @since      1.0
     * @access     private
     * @return     void
     * @update     date time
    */
    function Tree ($value)
    {
        $this->setNode(0, -1, $value);
    } // end func

    /**
     * Short description. 
     *
     * Detail description
     * @param      none
     * @global     none
     * @since      1.0
     * @access     private
     * @return     void
     * @update     date time
    */
    function getLayer ($id, $space = false)
    {
        return $space?str_repeat($space,
$this->layer[$id]):$this->layer[$id];
    } // end func

//getChilds(指定目录ID);
//取得指定目录下级目录.如果没有指定目录就由根目录开始
$category = $Tree->getChilds();

    /**
     * Short description. 
     *
     * Detail description
     * @param      none
     * @global     none
     * @since      1.0
     * @access     private
     * @return     void
     * @update     date time
    */
    function getParent ($id)
    {
        return $this->parent[$id];
    } // end func

使用方法

//setNode(目录ID,上级ID,目录名字);
$Tree->setNode(1, 0, ‘目录1’);
$Tree->setNode(2, 0, ‘目录2’);
$Tree->setNode(3, 0, ‘目录3’);
$Tree->setNode(4, 3, ‘目录3.1’);
$Tree->setNode(5, 3, ‘目录3.2’);
$Tree->setNode(6, 3, ‘目录3.3’);
$Tree->setNode(7, 2, ‘目录2.1’);
$Tree->setNode(8, 2, ‘目录2.2’);
$Tree->setNode(9, 2, ‘目录2.3’);
$Tree->setNode(10, 6, ‘目录3.3.1’);
$Tree->setNode(11, 6, ‘目录3.3.2’);
$Tree->setNode(12, 6, ‘目录3.3.3’);

        return $child;
    } // end func
} // end class

?>

        return $parent;
    } // end func

        ksort($parent);
        reset($parent);

发表评论

电子邮件地址不会被公开。 必填项已用*标注