当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP实例:PHP无限极分类

PHP
“懒人”的做法:用PHP简易实现中文分词
实例操作:PEAR的HTML_QuickForm7应用
PHP在电影图像中的妙用 合并汉英字幕
实例解说:用Perl来分析并生成中文Excel文件
实用举例:利用PHP代码实现网页自动判断转向
简单了解操控日期和时间的10个Perl CPAN模块
常用编程应用小技巧 PHP获得文件扩展名三法
windows环境下uploaded_file函数如何饶过缺陷
针对配置文件操作 PHP最常用的四个ini函数
用不同文件 构建可配置PHP应用程序的正确方式
精确到每一秒钟 如何实现在线人数的显示?
用PHP写mail函数 配置好后需要重启apache
简单示例:AJAX结合PHP代码实现登录
PHP中引用&的使用注意事项
关于AJAX的N篇贴子整理
社区新闻--PHP5内容管理系统
PHP 开发环境的选择、建立及使用(1)
PHP 开发环境的选择、建立及使用(2)
PHP 开发环境的选择、建立及使用(3)
PHP 开发环境的选择、建立及使用(4)

PHP实例:PHP无限极分类


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 97 ::
收藏到网摘: n/a

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

========================================================*/
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]