开发者社区> 问答> 正文

php无限分类的子分类如何再排序

第一步。建立无限分类表。

CREATE TABLE IF NOT EXISTS `chi_category` ( `id` int(11) NOT NULL AUTO_INCREMENT, `DishCategory_Path` varchar(255) DEFAULT NULL,
    DishCategory_Sort int(11), `DishCategory_Name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;

screenshot
第二步。使用以下查询语句
SELECT id,DishCategory_Path,DishCategory_Name,DishCategory_Sort,concat(DishCategory_Pa`
screenshot
第三步。看上面的语句结尾时order by fullpath。这个时候大致排序是正确的。
但是DishCategory_Sort这个字段的值没有排序。
因为order by要求当按照多个列进行排序时,只有第一列相同时才使用第二列。但是第一组fullpath是不可能相同的。所以现在不知道DishCategory_Sort这个字段的值如何排序。

我想实现的正确的情况是先按fullpath排序,然后 子分类例如 (川菜、卤菜)应该在上级分类(吃的)之下进行子分类的排序,如图所示 卤菜应该排在川菜前面才对。
那么现在怎么处理呢?各位大神

展开
收起
小旋风柴进 2016-03-10 16:01:06 3019 0
1 条回答
写回答
取消 提交回答
  • 我觉得设计思路应该是这样的

    比如一个菜单在第二级、sort为8,那么在第二级中显示时就排在第8位

    所以查询的时候,只要按照sort排序就可以,然后在根据父子层级关系组装成多维数组结构

    无限级分类组装的做法就不用再去copy了,自行查找

    个人觉得完全依靠数据库去完成所有不现实

    2019-07-17 18:57:49
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载