什么是 无限极分类???(PHP。数据库)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是 无限极分类???(PHP。数据库)相关的知识,希望对你有一定的参考价值。

那是一种关联关系....sql 里可以叫"自连接" 假设:表 Category 有以下字段: Id(PK),Cate_Name(varchar),Cate_Parent_Id(int) 数据: Id(编号ID) Cate_Name(类别名称) Cate_Parent_Id(父级Id) 1 BaseCategory 0 2 News 1 3 Article 1 4 Story 3 说明: Id 为 1 的基类别(没有父级类别) News,Article 为 基类别下的子分类 Story 为 Article 下的子分类 层次关系: 0 - 2 - 3 - 4 这样就可以简单实现无限分类的数据库的设计了 使用: 给出Id 获取到它的父类别和所有子类别 Function getParentCategory($Id) $sql = "select * from Category where Id = (select Cate_Parent_Id from Category where Id = $Id)"; $rs = mysql_query($sql,$conn); ...... //省事期间,给出伪代码吧 if(记录不存在 或者 $Id = 1) return false; //无父级或不存在 else return 查询出的父级数据数组; Function getChildCategory($PId) $sql = "select * from Category where Cate_Parent_Id = $PId"; 存在则返回数据数组 否则返回false 上面只是简单说明下大致思路.. php,J2ee的我没手写过,都是通过支持ORM的MVC框架去配置出来的. asp的倒是写过,需要的话,可以发你 只要逻辑关系整清楚了,就不难了...至于页面展示,可以用JS或者AJAX 参考技术A 楼上的说了这么多,不知道对不对,不过你可以这样,见个简单的表结构:id,parentid,names这样3个主要字段,第一级别,就id和names,parentid=0,第二级就是id和,parentid=上级的id,names。基本意思就是这样CREATE TABLE tablename(
id INT AUTO_INCREMENT,
parentid INT,
names CHAR(10),
PRIMARY KEY (id)
)
;

PHP无限极分类

1、数据库设计。

技术分享

 

2、PHP代码。

//一维数组的形式

技术分享
function tree(&$list, $pid = 0, $level = 0, $html = ‘----------‘) {
static $tree = array();
foreach ($list as $v) {
if ($v[‘pid‘] == $pid) {
$v[‘level‘] = $level;
$v[‘html‘] = str_repeat($html, $level);
$tree[] = $v;
tree($list, $v[‘id‘], $level + 1);
}
}
return $tree;
}
View Code

 

//多维数组的形式

技术分享
function toLayer($cate, $pid = 0){
$arr = array();
foreach ($cate as $v){
if ($v[‘pid‘] == $pid){
$v[‘child‘] = toLayer($cate, $v[‘id‘]);
$arr[] = $v;
}
}
return $arr;
}
View Code

 

以上是关于什么是 无限极分类???(PHP。数据库)的主要内容,如果未能解决你的问题,请参考以下文章

php无限极分类实现的方法?

php递归无限极分类怎么弄

手把手教你用php实现无限极分类功能

PHP无限极分类详谈

PHP实现无限极分类的两种方式

PHP无限极分类