码迷,mamicode.com
首页 > Web开发 > 详细

PHP无限极分类

时间:2014-11-05 19:56:20      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:http   io   ar   os   for   sp   数据   on   2014   

PHP无限级分类实现。。。。。。

1,数据库设计:

bubuko.com,布布扣

bubuko.com,布布扣

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,效果图:

bubuko.com,布布扣


PHP无限极分类

标签:http   io   ar   os   for   sp   数据   on   2014   

原文地址:http://my.oschina.net/u/1156660/blog/341199

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!