基于递归的无限分类通常被认为是比较消耗资源的,但无可否认这是一种简单的实现无限分类的方法,至于消耗资源我们可以通过缓存的方式改善,下面这个是基于php mysql的递归实现无限分类
数据库结构如下

实现如下效果

php程式代码
<?php
error_reporting(E_ALL);
//mysql_connect ...
$link = mysql_connect('localhost','root','');
mysql_select_db('test');
function tree($parentid) {
$result = mysql_query('SELECT * FROM `article_class` WHERE `parentid` = '.$parentid) OR die("Invalid query: " . mysql_error());;
while($r = mysql_fetch_array($result)) {
echo str_repeat(' ',$r['level']).$r['pcname'].'<br />';
tree($r['pcid']);
}
}
if(($parentid + 0) < 1){
$parentid = 0;
}
tree($parentid);
?>
关于无限分类,你也可以了解一下这个:基于左右值的无限分类算法