介绍
怎么在php中使用mysql实现一个无限级分类?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
数据库字段大概如下:
代码如下:
id编号
fid父分类编号
class_name分类名
路径分类路径,以id为节点,组成类似,1,2,3,4,这样的字符串
可以假设有如下的数据:
代码如下:
id fid class_name路径
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
无限级分类操作代码:
& lt; ? php ,, $ sql=癝ELECT *,得到tree order by 路径”,,, 查询结果=国家统计局→美元($ sql);,, 而(行=美元国家统计局→访问fetch_array(结果)美元){,, 如果才能(substr_count(美元行[& # 39;path & # 39;], & # 39;, & # 39;)比;2){,, ,,,(i=0; i<美元(substr_count(美元行[& # 39;path & # 39;], & # 39;, & # 39;) 2);美元我+ +),, ,,,,,echo ,,,, ,,}, echo 才能;$行[& # 39;class_name& # 39;]强生# 39;& lt; br> & # 39;;,, },, 祝辞;,, conn 美元;=,mysql_connect (, & # 39; localhost # 39;,, & # 39;根# 39;,,& # 39;根# 39;,); mysql_select_db (, & # 39; wanggou123& # 39;,, conn 美元;); mysql_query (, & # 39; set names use utf8 # 39;,);=$ sql “select  id, concat (catpath & # 39; & # 39;, id), as abspath, name 得到category order by abspath"; , $ query =, mysql_query (, sql 美元;); while (,(查询)美元result中进行row=mysql_fetch_array美元),{ ,/* * *,才能第一种展示方法 *//* $ space =, str_repeat (, & # 39;,,,,,,,, & # 39;,, count (, explode (, & # 39; & # 39;,, row 美元;[& # 39;abspath& # 39;],),),安康;1,); echo space 美元;只row 美元;[& # 39;名字# 39;],只& # 39; & # 39;;*//* * ,第二种展示方法 */space 美元;=,str_repeat (, & # 39;——& # 39;,, count (, explode (, & # 39; & # 39;,, row 美元;[& # 39;abspath& # 39;],),),安康;1,); option 美元。=,& # 39;& # 39;,只space 美元;只row 美元;[& # 39;名字# 39;],只& # 39;& lt; Br> & # 39;; } echo 美元选项; 退出(); echo & # 39; & lt; select name=皁pt"祝辞& # 39;,只option 美元;只& # 39;& lt;/select> & # 39;;
看完上述内容,你们掌握怎么在php中使用mysql实现一个无限级分类的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!