先看效果
这个就是PHP树形列表
首先先建立数据库
[Copy to clipboard]
PHP CODE:
CREATE TABLE IF NOT EXISTS `cms_column` (
`columnid` int(4) NOT NULL default '0',
`columnfatherid` int(4) NOT NULL default '0',
`columnname` varchar(100) NOT NULL default '',
PRIMARY KEY (`columnid`)
) ;
[Copy to clipboard]
PHP CODE:
INSERT INTO `cms_column` (`columnid`, `columnfatherid`, `columnname`) VALUES
(1, 0, '美丽杭州'),
(2, 0, '体育娱乐'),
(3, 1, '星球速递'),
(4, 0, '快乐童年'),
(5, 4, '喜欢各自'),
(6, 5, '发奋图强'),
(7, 2, '北京奥运'),
(9, 0, '星球追寻'),
(10, 0, '你我分享'),
(11, 0, '安静水月'),
(12, 0, '寒星点点'),
(13, 0, '月光韬晦'),
(14, 0, '韬光养晦');
以上是表和表结构
下面是程序 我会尽量多用点注释
这个函数用来返回上面效果中─字符串
PS:这个程序经过LEO的指点,当时一下子想不到
[Copy to clipboard]
PHP CODE:
function ReturnStr($var)
{
for($a=0;$a<=$var;$a++)
$str.="─";
return $str;
}
这个函数就是实现无限树形列表
我利用ADODB类去实现,具体各位同志自己修改
[Copy to clipboard]
PHP CODE:
$sql="select * from cms_column where columnfatherid=0"; //从数据库查找第一级菜单
$result=$DB->Execute($sql);
echo"<select name=\"select\" id=\"select\">";
function ShowMenu($result)
{
global $DB;
while($menu=$result->FetchRow())//开始输出菜单输出菜单循环
{
static $layer=0; //很重要 这个static变量,用在输出菜单名字前的─的个数
//static $str;
echo "<option>";
echo ReturnStr($layer).$menu[columnname];
echo "</option>"; //开始第一级菜单
$sql="select * from cms_column where columnfatherid=$menu[columnid]"; //查找不是第一级的菜单,有FATHERID的
$result_sub=$DB->Execute($sql);
if($result_sub->RecordCount()>0)
{
$layer++;
ShowMenu($result_sub); //递归 输出第二,第三等等无限级列表
}
}
$layer--;
}
if($result->RecordCount()>0) ShowMenu($result);
echo "</select>";
好了 大家去现实吧 有问题下面跟贴
在接下来
我还将推出PHP无限树形菜单的演示