PHP实现无限极分类图文教程
发布时间:2020-12-13 02:12:10 所属栏目:PHP教程 来源:网络整理
导读:《:PHP实现无限极分类图文教程》要点: 本文介绍了:PHP实现无限极分类图文教程,希望对您有用。如果有疑问,可以联系我们。 一般来说实现无穷极分类都是使用递归或者迭代的方式,小伙伴们看下本文的实现方式吧. PHP学习 1,数据库设计: PHP进修 PHP进修 PHP
《:PHP实现无限极分类图文教程》要点: 一般来说实现无穷极分类都是使用递归或者迭代的方式,小伙伴们看下本文的实现方式吧.PHP学习 1,数据库设计:PHP进修
2,代码:PHP进修
代码如下:
/**
?* @author koma ?* @todo?? PHP无限极分类 ?*/ $cn = mysql_connect('localhost','root','') or die(mysql_error()); mysql_select_db('t',$cn) or die(mysql_error()); mysql_query('set names utf8'); ?/** ?* 从顶层逐级向下获取子类 ?* @param number $pid ?* @param array $lists ?* @param number $deep ?* @return array ?*/ function getLists($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']; ??????? $lists[] = $row; ??????? getLists($row['id'],$lists,++$deep); //进入子类之前深度+1???????? --$deep; //从子类退出之后深度-1???? } ??? return $lists; } ?function displayLists($pid = 0,$selectid = 1) { ??? $result = getLists($pid); ??? $str = '<select>'; ??? foreach ( $result as $item ) { ??????? $selected = ""; ??????? if ( $selectid == $item['id'] ) { ??????????? $selected = 'selected'; ??????? } ??????? $str .= '<option '.$selected.'>'.$item['catename'].'</option>'; ??? } ??? return $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); //逆序,到达从父类到子类的效果???? return $category; } ?function displayCategory($cid) { ??? $result = getCategory($cid); ??? $str = ""; ??? foreach ( $result as $item ) { ??????? $str .= '<a href="'.$item['id'].'">'.$item['catename'].'</a>>'; ??? } ??? return substr($str,strlen($str) - 1); } ?echo displayLists(0,3); ?echo displayCategory(13); 3,效果图:
是不是很简单呢,小伙伴们可以直接拿去用哈,不收版权费^_^PHP进修 欢迎参与《:PHP实现无限极分类图文教程》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |