一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

无限分类的文章

时间:2008-02-01 编辑:简简单单 来源:一聚教程网

这是类
/*========================================================
类名:catalog
功能:无限分级类
方法:
        树形显示分类
        catalog_show($id) //参数$id 递归调用
                流程:找到父分类为0所有根分类-> 一直递归取得所有分类并显示       
        添加分类
                catalog_add($uid,$name) //$uid 父id  //$name 分类名               
                流程:依据$uid,在此id下添加一个新子id
        删除分类
                catalog_del($uid)//参数 $uid 数要删除的分类
        修改分类
                catalog_set($id,$name) //参数 $id 要修改的分类  //参数 $name  新的分类名
变量:
        $config                                //数据库信息-> host,user,pass,dbname
        $catalog_dbname                //分类数据库名
数据库:
        catalog_id                        //分类的自然序号
        catalog_uid                        //分类的父分类
        catalog_name                //分类名
        catalog_path_number        //亲缘树数字形式  0:1:2
        catalog_path_char        //亲缘树字符形式  分类1:分类1.1:分类1.1.1
参照文章 [url]http://www.111com.net/12823/viewspace_4468.html[/url]
========================================================*/
class catalog{
        var $config;
        var $catalog_dbname;
        var $links;
        private function connect(){
                $this->links = mysql_connect($this->config['host'],$this->config['user'],$this->config['pass']) or die("错误: 第".__LINE__."行
".mysql_error());
                mysql_select_db($this->config['dbname'],$this->links);
                mysql_query("SET NAMES gb2312");
        }
       
        function catalog_show($uid = 0){
                $this->connect();
                $sql = "SELECT * FROM ".$this->catalog_dbname. "
                                        WHERE catalog_uid = ". $uid ."
                                                 ORDER BY catalog_id ";
                $result = mysql_query($sql,$this->links) or die("错误: 第".__LINE__."行
".mysql_error());
               
                if(mysql_num_rows($result) > 0){
                        while ($row = mysql_fetch_assoc($result)){       
                                if($this->sun_catalog($row['catalog_id'])){//判断有没有子分类
                                        $cata_img = "";
                                }else{
                                        $cata_img = "";
                                }
               
                                $path = explode(":",$row['catalog_path_number']);
                                if(count($path) > 1){
                                        for($i=1;$i                                                 $path_img .= "";
                                        }
                                }
                                echo $path_img.$cata_img;
                                echo "";
                                echo $row['catalog_name']."

";
                                $path_img = "";
                                if($this->sun_catalog($row['catalog_id'])){                                       
                                        $hidden_div  = "style='display:none'";                                               
                                        echo "

";                                       
                                        $this->catalog_show($row['catalog_id']);
                                        echo "
";
                                }                                               
                        }
                }               
        }
        private function sun_catalog($uid){//判断是否有子分类
                $sql = "SELECT * FROM ".$this->catalog_dbname. "
                                        WHERE catalog_uid = ". $uid ."
                                                 ORDER BY catalog_id ";
                $result = mysql_query($sql,$this->links) or die("错误: 第".__LINE__."行
".mysql_error());
                if(mysql_num_rows($result) > 0){
                        return true;
                }else{
                        return false;
                }
       
        }
        function catalog_add($uid,$name){
                //获取父id的亲缘树
                $this->connect();
                $sql = "SELECT * FROM ".$this->catalog_dbname."
                                         WHERE catalog_id = '".$uid."'";
                $result = mysql_query($sql,$this->links)
                                                or die("错误: 第".__LINE__."行
".mysql_error());
                $row = mysql_fetch_assoc($result);
                $fid_path_number = $row['catalog_path_number'];//id的数字亲缘树
                $fid_path_char = $row['catalog_path_char'];//id的字符亲缘树
                //插入数据 先插入行->再找到最新插入的id, 在依据这个id进行修改
                $sql = "INSERT INTO ".$this->catalog_dbname."(catalog_uid,catalog_name)
                                        VALUES(".$uid.",'".$name."')";
                $result = mysql_query($sql,$this->links)
                                                or die("错误: 第".__LINE__."行
".mysql_error());
                $catalog_id = mysql_insert_id();//获取自己的id
                $catalog_path_number = $fid_path_number.":".$catalog_id;//得到自己的数字亲缘数
                $catalog_path_char = $fid_path_char.":".$name;//得到自己的字符亲缘数
               
                $sql = "UPDATE '".$this->catalog_dbname."'
                                        SET
                                                catalog_path_number = '".$catalog_path_number."',
                                                catalog_path_char = '".$catalog_path_char."'
                                        WHERE
                                                catalog_id = ".$catalog_id;       
                mysql_query($sql,$this->links)
                                or die("错误: 第".__LINE__."行
".mysql_error());       
                       
        }
       
        function catalog_del($id){
                $this->connect();
                $sql = "DELETE FROM ".$this->catalog_dbname."
                                        WHERE catalog_id = ".$id;
                mysql_query($sql,$this->links)
                                or die("错误: 第".__LINE__."行
".mysql_error());
        }
        function catalog_set($id,$name){
                $this->connect();
                $sql = "UPDATE ".$this->catalog_dbname."
                                        SET
                                                catalog_name = '".$name."'
                                        WHERE
                                                catalog_id = ".$id;       
                mysql_query($sql,$this->links)
                                or die("错误: 第".__LINE__."行
".mysql_error());
               
        }
       
       
}
?>

热门栏目