那是一种关联关系....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给个函数你,调用get_category()就是一个数组格式的结果
function get_category($parent_id=0){
$arr=array()
$sql = "select * from category where parent_id=$parent_id"//查询子级数据
$result = array(a_object,b_object,,,)=sql_query($sql)//查询结果一个数组或列表格式,自己完善。
if($result){
foreach($result as $re){//循环数组
if(get_category($re.id))//如果子级不为空
$re['child'] = get_category($re.id)
$arr[] = $re
}
return $arr
}
评论列表(0条)