php无限极分类

php无限极分类

CODE=PHP]
至于添加删除之类的功能我就不多写了!仔细看看就知道这么用了.
难的是显示方面
希望高手扩展一下!

QUOTE:
这是类
<?php
/*========================================================
类名: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
参照文章 http://www.phpchina.com/12823/viewspace_4468.html
========================================================*/
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__."行<br>".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__."行<br>".mysql_error());
 if(mysql_num_rows($result) > 0){
 while ($row = mysql_fetch_assoc($result)){ 
 if($this->sun_catalog($row['catalog_id'])){//判断有没有子分类
 $cata_img = "<img id = 'img".$row['catalog_id']."' src='./img/last_node.jpg' ōnclick='click_catalog(".$row['catalog_id'].")'/>";
 }else{
 $cata_img = "<img src='./img/sp.jpg'/>";
 }
 $path = explode(":",$row['catalog_path_number']);
 if(count($path) > 1){
 for($i=1;$i<count($path);$i++){
 $path_img .= "<img src='./img/sp.jpg'/>";
 }
 }
 echo $path_img.$cata_img;
 echo "<a class='menu' href = 'javascrīpt:send_id(".$row['catalog_id'].")'>";
 echo $row['catalog_name']."</a><br>";
 $path_img = "";
 if($this->sun_catalog($row['catalog_id'])){ 
 $hidden_div = "style='display:none'"; 
 echo "<div id = 'div".$row['catalog_id']."' ".$hidden_div.">"; 
 $this->catalog_show($row['catalog_id']);
 echo "</div>";
 } 
 }
 } 
 }
 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__."行<br>".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__."行<br>".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__."行<br>".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__."行<br>".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__."行<br>".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__."行<br>".mysql_error());
 }
}
?>
[/CODE]


 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值