PHP实现无限极分类图文教程
PHP实现无限极分类图文教程
发布时间:2016-12-29 来源:查字典编辑
摘要:一般来说实现无限极分类都是使用递归或者迭代的方式,小伙伴们看下本文的实现方式吧。1,数据库设计:2,代码:复制代码代码如下:/***@aut...

一般来说实现无限极分类都是使用递归或者迭代的方式,小伙伴们看下本文的实现方式吧。

1,数据库设计:

PHP实现无限极分类图文教程1

PHP实现无限极分类图文教程2

2,代码:

复制代码 代码如下:/**

* @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, 0, strlen($str) - 1);

}

echo displayLists(0, 3);

echo displayCategory(13);

3,效果图:

PHP实现无限极分类图文教程3

是不是很简单呢,小伙伴们可以直接拿去用哈,不收版权费^_^

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类