求问二级分类模块,主要是思路。 用xml描述二级分类菜单然后用php的xml类解析 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用xml描述二级分类菜单 然后用php的xml类解析_------------------------------------------------------------------不要XML,因为我不太懂。另外“b里面建个parentId字段”,我是想往这个方向走,但是没有处理这个字段的思路啊。在线等招。 为了一次查询就能实现,我看到有些程序是这样控制.都记录 用一字段大类ID ,记录当前类ID的序号(有一定规则),如 a类编号01B类编号02那么A小类AA类编号变成01-01,AA类小类变成编号01-01-01B类02B类小类BB类编号02-01select * from tb_class where catalog_id=大类编号 and class_id>当前类编号 order by 序号就可以得到当前类的小类.. b里面建个parentId字段,用递归的方法可以得到无限分类的 不要递归吧 我的最多是三级分类。我在网上招了一段,但是看不太懂,大家帮忙解释一下。这个问题是我学PHP最大的难题之一,主要是弄不清楚它的逻辑是什么。——————————————————————————————要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的本文还是通过数据库的设计,用一句sql语句实现数据库字段大概如下:id 编号fid 父分类编号class_name 分类名path 分类路径,以 id 为节点,组成类似 ,1,2,3,4, 这样的字符串可以假设有如下的数据id fid class_name path1 0 分类1 12 0 分类2 23 1 分类1-1 , 1, 3,4 1 分类1-2 , 1,4,5 2 分类2-1 , 2,5,6 4 分类1-2-1 ,1,4,6,PHP代码<?php $sql="SELECT * FROM tree order by path"; $result=$nbs->Query($sql); while($rows=$nbs->fetch_array($result)){ if(substr_count($rows['path'],',')>2){ for($i=0;$i<(substr_count($rows['path'],',')-2);$i++) echo ' '; } echo $rows['class_name'].'<br>'; } ?> 其中$nbs是数据库操作类,此方法简单明了! ————————————————————————————————————————作者说简单明了 ,我却看不懂,真实郁闷。 就是类似信息网站分成征婚、招聘各类信息那样。只求这么一个答案:原理和算法是什么?基本用到那几个函数?我最大的疑问就是:程序怎么写,才能让B类ID是A类ID的子集。在我学过的,有过两个数据表的某两个ID段是等同的,但从属关系的没有见过啊。 就是类似信息网站分成征婚、招聘各类信息那样。只求这么一个答案:原理和算法是什么?基本用到那几个函数?我最大的疑问就是:程序怎么写,才能让B类ID是A类ID的子集。在我学过的,有过两个数据表的某两个ID段是等同的,但从属关系的没有见过啊。 php中使用mysql语句出现错误 php生成XML如何加BOM PHP页面和.net页面在同一台服务器下是否能互相跳转!? 基础编程 odbc_fetch_array如何获取数字数组? 正则表达式匹配问题 怎么样用php做一个软件下载系统吗? 小菜一碟,会PHP的来拿分呀! 留言簿 我想用一下switch 语句,结果用出了一些疑问 【招人】北京招聘PHP程序员 如何在MySQL数据库中上传存入和查询读取图片并最终显示出来!
然后用php的xml类解析
_------------------------------------------------------------------
不要XML
,因为我不太懂。另外“b里面建个parentId字段”,我是想往这个方向走,但是没有处理这个字段的思路啊。在线等招。
如 a类编号01
B类编号02
那么A小类AA类编号变成01-01,AA类小类变成编号01-01-01
B类02
B类小类BB类编号02-01
select * from tb_class where catalog_id=大类编号 and class_id>当前类编号 order by 序号
就可以得到当前类的小类..
——————————————————————————————
要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的
本文还是通过数据库的设计,用一句sql语句实现
数据库字段大概如下:
id 编号
fid 父分类编号
class_name 分类名
path 分类路径,以 id 为节点,组成类似 ,1,2,3,4, 这样的字符串
可以假设有如下的数据id fid class_name path
1 0 分类1 1
2 0 分类2 2
3 1 分类1-1 , 1, 3,
4 1 分类1-2 , 1,4,
5 2 分类2-1 , 2,5,
6 4 分类1-2-1 ,1,4,6,
PHP代码
<?php
$sql="SELECT * FROM tree order by path";
$result=$nbs->Query($sql);
while($rows=$nbs->fetch_array($result)){
if(substr_count($rows['path'],',')>2){
for($i=0;$i<(substr_count($rows['path'],',')-2);$i++)
echo ' ';
}
echo $rows['class_name'].'<br>';
}
?> 其中$nbs是数据库操作类,此方法简单明了! ————————————————————————————————————————
作者说简单明了 ,我却看不懂,真实郁闷。