欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php中无限级分类程序代码_PHP教程

程序员文章站 2023-12-23 10:45:28
...
文章是作者原创的一篇关于在php中实现的无限级分类,有需要了解的朋友可以看看。

无限分类就像windows下新建一个文件夹,在新建的文件夹下又可以新建一个文件夹,这样无限循环下去,无限分类也是这样,父类可以分出它子类,子类又可以分出它的子类,这样一直无限循环下去

php中无限级分类程序代码_PHP教程

代码如下 复制代码

--
-- 数据库: `tree`
--
CREATE DATABASE `tree` DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
USE `tree`;


--
-- 表的结构 `class`
--

CREATE TABLE `class` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(10) NOT NULL,
`pid` int(11) NOT NULL,
`depth` varchar(100) default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=30 ;


$link =mysql_connect('localhost','root','root');
mysql_select_db('tree');
mysql_query ( 'set names GBK' );
if($_GET['act']=='add'){
$name=$_POST['name'];
if($name=='') exit('name not null');
$pid=$_POST['pid'];
if($pid !=0){
$sql="select * from class where id=".$pid;
$result =mysql_query($sql);
$row = mysql_fetch_array($result);
$depth=$row['depth'].','.mysql_insert_id();//$getID即为最后一条记录的ID
}else{
$depth=0;
}
$sql="INSERT INTO class(name,pid,depth) VALUES('".$name."','".$pid."','".$depth."')";
$result =mysql_query($sql);
if(!$result){
exit("shibai $sql");
}else{
exit("chenggong");
}
}
?>















名称
栏目









//$sql = "select * from `class` order by sort asc, id Desc";
//$sql="select * from class where pid=0";
//$result =mysql_query($sql);
//while($row = mysql_fetch_array($result)){
//$class_arr[] = array($row['id'],$row['name'],$row['classid'],$row['sort']);
// echo $row['name'].$row['id'].'---'.$row['pid'].'
';
sorttree(0);


//}

function sorttree($id){
//if()
$sql="select * from class where pid=".$id;
$result =mysql_query($sql);
//$a=mysql_fetch_array($result);
//$row = mysql_fetch_array($result);
while($row = mysql_fetch_array($result)){
$rid=explode(",",$row['depth']);
$i=count($rid);
$n = str_pad('',$i,'-',STR_PAD_RIGHT);
$n = str_replace("-"," ",$n);
//print_r($row).'
';
if($row['pid']==0){
echo $n.'|-----'.$row['name'].'-----|
';
}else{
echo $n.' |-'.$row['name'].'
';
}
sorttree($row['id']);
}
}

function sort_s($id){
//if()
$sql="select * from class where pid=".$id;
$result =mysql_query($sql);
//$a=mysql_fetch_array($result);
//$row = mysql_fetch_array($result);
while($row = mysql_fetch_array($result)){
$rid=explode(",",$row['depth']);
$i=count($rid);
$n = str_pad('',$i,'-',STR_PAD_RIGHT);
$n = str_replace("-"," ",$n);
//print_r($row).'
';
if($row['pid']==0){
echo "rn";
}else{
echo "rn";
}
sort_s($row['id']);
}
}
?>

php中无限级分类程序代码_PHP教程

总结原理

如何把它的各个分类一一列出来呢?
首先我们假设有这样的一个三级分类,新闻→PHP新闻→PHP6.0出来了。
如果我们要查找“PHP6.0出来了”这条新闻,我们先点击新闻,然后再点击PHP新闻

就可以查出来了,也就是说我们可以通过祖父类一级一级地往下找,反过来我们只要

知道一个子类的父类,就可以把它查找出来了。这样我们在设计数据库时就可以多设

计一个父类id的字段就可以实现无限分类的功能了

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/631632.htmlTechArticle文章是作者原创的一篇关于在php中实现的无限级分类,有需要了解的朋友可以看看。 无限分类就像windows下新建一个文件夹,在新建的文件夹...

上一篇:

下一篇: