PHP实现无限极分类图文教程
一般来说实现无限极分类都是使用递归或者迭代的方式,小伙伴们看下本文的实现方式吧。
1,数据库设计:
2,代码:
复制代码代码如下:/* * * @作者koma * @todo PHP无限极分类*/$cn=mysql_connect('localhost ',' root ','')或die(MySQL _ error());mysql_select_db('t ',$cn)或die(MySQL _ error());MySQL _ query(' set name utf8 ');/** * 从顶层逐级向下获取子类* @ param number $ PID * @ param array $ list * @ param number $ deep * @ return array */function get list($ PID=0,$ lists=array(),$ deep=1){ $ SQL=' SELECT * FROM category WHERE PID=' .$ PID $ RES=MySQL _ query($ SQL);while(($ row=MySQL _ fetch _ assoc($ RES))!==FALSE){ $ row[' catename ']=str _ repeat(',$deep). '| - '.$ row[' catename '];$ list[]=$ row;getlist($ row[' id '],$ lists,$ deep);//进入子类之前深度1-$深;//从子类退出之后深度-1 }退回$ lists }函数显示列表($ PID=0,$ selectid=1){ $ result=get list($ PID);$ str=" selectforeach($结果为$ item){ $ selected=' ';if($ selectid==$ item[' id ']){ $ selected=' selected ';} $str .="选项"。$已选择。''.$item['catename']./option ';}返回$str .='/select ';} /** * 从子类开始逐级向上获取其父类* @ param number $ cid * @ param array $ category * @ return array : */function getCategory($ cid,$ category=array()){ $ SQL=' SELECT * FROM category WHERE id=' .$cid .LIMIT 1 ';$ result=MySQL _ query($ SQL);$ row=MySQL _ fetch _ assoc($ result);if($ row){ $ category[]=$ row;getCategory($row['pid'],$ category);} krsort($ category);//逆序,达到从父类到子类的效果返回$类别;}函数显示类别($ cid){ $ result=getCategory($ cid);$ str=foreach($结果为$item ) { $str .='a href=' ' .$item['id']' '。$item['catename']./a ';}返回substr($str,0,strlen($ str)-1);}回声显示列表(0,3);回声显示类别(13);3,效果图:
是不是很简单呢,小伙伴们可以直接拿去用哈,不收版权费^_^
版权声明:PHP实现无限极分类图文教程是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。