旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

mysql中无限极分类的代码完成【MySQL教程】,无限极分类

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:58评论:0


导读:本篇文章给人人带来的内容是关于mysql中无穷极分类的代码完成,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。我也是从别的处所找来的,剖析后发明挺不错的,特...
本篇文章给人人带来的内容是关于mysql中无穷极分类的代码完成,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

我也是从别的处所找来的,剖析后发明挺不错的,特来分享。

没法发图只能简朴处置惩罚:

id name pid path

1 消息 0 0

2 中国消息 1 0-1

3 美国消息 1 0-1

4 北京消息 2 0-1-2

5 指甲哥消息 3 0-1-3

一条语句搞定:

SELECT id,name,pid,path,concat(path,’-‘,id) AS newpath FROM cates ORDER BY newpath

查询后的结果:

id name pid path newpath

1 消息 0 0 0-1

2 中国消息 1 0-1 0-1-2

4 北京消息 2 0-1-2 0-1-2-4

3 美国消息 1 0-1 0-1-3

5 指甲哥消息 3 0-1-3 0-1-3-5

能够看出,构造已很清楚了。异常奇妙的运用了mysql的排序功能,用 concat() 函数把当前途径与当前的id的衔接起来(很想衔接字符串),起个别号 newpath ,在排序 newpath,巧的是排序时先比较0,在比较1,在比较2,在比较3…,如许查询的结果是直接按曾级排序好的,接下来只须要在前台轮回输出就能够了,“层级关联占位符”也好处理,newpath 的 0-1-2-4 这个就相当于无穷极占位符,php输出时要用上面的语句查询出来,在背景处置惩罚 每一条数据的 newpath 字段值,先把值支解成数组,在统计这个数组,再在数组里增加一个键count(一组数据),把统计的数组个数放到这个键里。

thinkphp 5.0 为例:

$list = CateModel::fild(‘id,name,pid,path,concat(path,’-‘,id)’)->order(‘newpath asc’)->select();
// 上面模子查询方法只是也许意义,能够依据最上面的 mysql 语句,用 tp5 的体式格局拼出来。
foreach ($list as $k=>v){
$list[$k][‘count’] = count(explode(‘-‘,$v))
}

这个count就是层级分类的占位符,然后在模版里轮回它,轮回频频就echo 频频  

<select name=”aa”>
{volist name=”list” id=”vo”}
<option vlaue=”{$vo.id}”>
{php}
for($i=0;$i<$vo[‘count’]*2;$i++){
echo ‘&nbsp;’
}
{/php}
{$vo.name}
</option>
{/volist}
</select>

结果:

消息

中国消息

北京消息

美国消息

华盛顿消息

相干引荐:

thinkphp中无穷级栏目的排序完成代码

TP5框架下如何用递归完成无穷分级(代码示例)

以上就是mysql中无穷极分类的代码完成的细致内容,更多请关注ki4网别的相干文章!

标签:无限极分类


欢迎 发表评论: