问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP无限级分类怎么写啊

发布网友 发布时间:2022-04-15 10:58

我来回答

2个回答

热心网友 时间:2022-04-15 12:27

<?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());
}
}
?>

热心网友 时间:2022-04-15 13:45

根据你的数据库和需求改一下就可以了

<style type="text/css">
ul {position:relative;
list-style-type: none;
padding:0px;
margin:0px;
font-size:12px;
}
li{
position:relative;
padding:0px;
margin:0px;

}
.ul{
padding:0px;
margin:0px;
position:relative;
margin-left:8px;
width:100px;
display:none;

}
</style>
<script>
function open_close(id){

id.children.item(0).style.display='block';

}

</script>

<?php
function xh($i){
if($i>1) {
echo "<ul class='ul'>";
for($j=1;$j<$i;$j++){
echo "<li onClick='open_close(this)'>├点我".$j;

xh($j);
echo "</li>";
}
echo "</ul>";
}
}

$i=0;
echo "<ul>";
while(true){

$i++;

echo "<li onClick='open_close(this)'>点我".$i;
xh($i);
echo "</li>";

if($i==10){break;}

}

echo "</ul>";

?>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么样制作个人简历 上海海事大学对外交流多麽出国会不会容易一些 上海海事大学提前批今年要几号才能出来 怎么查找大学家长群 北京慧学堂在线教育学校的老师打电话来说要交3480元钱,给孩子半年的在... 左脸颊长青春痘是什么原因? 某商店上午9:00开始营业全天营业8小时下午几点关门 (2012?泗县模拟)某商店每天10:00-18:00营业,全天营业88小时. 某商店每天9:20-18:00营业,全天营业()小时。老师早上7:30到校,下午4... 商场营业时间是上午8:00-下午6:00,一位顾客向一位老先生嗯打听时间了... 星际争霸里边如何控制自己一个单位使全部单位行动? 正三码——炉石传说风暴守护者是什么炉石传说风暴 元素萨满的闪电箭为什么会触发风暴守护者 炉石传说风暴守护者是什么 炉石传说风暴守护者解析 炉石传说风暴守护者是什么 炉石传说风暴 谁有小学心理健康教育讲课的模板?谢了 魂牵梦绕的读音是什么 魔兽争霸 宠物小精灵珍珠钻石2.5e化石盔怎么进化 真空包装鲅鱼怎么炖好吃又简单 七绝中“仄仄平平仄仄平”中第六字坳了,对句如何救 卢湾区自忠路淡水路,41地块何时拆迁? 谁知道这是什么宠物小精灵 中原银行办不了一类卡 请求一个好听的女孩子笔名。 汽车美容十周年活动要怎么搞 本人开不了1类卡,本人不在还开了1类卡 词的格律? 口袋妖怪白金光化石盔怎么进化 汽车装饰美容可以做什么样的促销活动 没有哈尔滨银行卡为什么不能开一类卡 斥候能转成风暴守护者吗 T8到底在哪个副本出 wow装备t8t9t9.5的这些t几是什么意思? 魔兽世界求目前奶骑的毕业装备各个部件的名称和出处,最好详细点谢谢 vivo可以用第三方桌面吗 Yunos vivo下载了个第三方主题桌面设置为默认但是我按中间小房子就会复原原来的桌面,怎么办? 魔兽世界wow4.3奶骑nq毕业攻略 iphone6s来电没有声音怎么回事 仙侠世界胸调到最大 游戏里是什么样子 魔兽争霸3暗夜战役第4章.背叛者的愤怒中,地图右下角打破门后突然出现发现秘密的字样.这是什么意思? 英雄联盟时光守护者风暴之怒买谁好 vivoy37如何设置第三方桌面为默认桌面? 泰坦之旅2不朽王座风暴专精和自然专精分别配什么第二专精比较好 玩魔兽暗夜精灵战役 背叛者的愤怒 我看见一个风暴祭坛守护者是干啥的 过生日的好点子 生日创意点子 浪漫惊喜生日点子? 银饰变黑是为什么?能恢复吗? 兰州化学物理研究所《引进国内外“优秀人才计划”实施细则》的内容谁知道?回答的越详细越好有加分。 中国科学院兰州化学物理研究所的人才培养