十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
问题太过笼统,给你一个无限极分类数据处理的一种解决方案吧
创新互联建站-专业网站定制、快速模板网站建设、高性价比吉木萨尔网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式吉木萨尔网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖吉木萨尔地区。费用合理售后完善,10余年实体公司更值得信赖。
表结构
id int 主键
fid int 父级id, 顶级分类的fid设为0, 其它级别的分类的fid值为其父级分类的id
name char 分类名称
若是要显示整个分类列表,那么你读取整个表, 形成一个这样结构的数组
$list = array();
while( $row = mysql_fetch_assoc($ret) ){
if( !isset($list[$row['fid']]) ) $list[$ret['fid']] = array();
$list[$ret['fid']][$ret['id']] = $row;
}
输出时用个递归就可以了, 把它转换成json,用js来做树形菜单那也很好控制
若是查某个分类下的子分类,那查询很简单,就不说了
在数据库建立的时候就已经分好了 给每个栏目一个p_id
最上层菜单p_id为0
子菜单p_id为上级菜单的id
查询的时候就根据id和pid来查找
找出所有就按照递归来找
/**
* 如果出现多级分类且在一张表中, 此时你需要增添字段确定分类间的关系
* 通常做法是在数据表中加一个字段如 'pid', 如果 id == pid 即判定为父子关系
*/
// 如这张表
// 如果需要找出中国下面的分类,只需要找出所有 pid = 1 即可
SELECT * FROM table WHERE pid = 1;
select b表应查询的字段 form b表 join a 表 on a表.cat_id =b表.cat_id;
希望会对你有帮助!