php 无线分类tree
2013-10-31 00:36
232 查看
数据库
db: lianxi
test :tvmenu
CREATE TABLE IF NOT EXISTS `tvmenu` (
`id` tinyint(4) NOT NULL auto_increment,
`bid` tinyint(4) NOT NULL default '0',
`name` varchar(20) default NULL,
`url` varchar(60) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=16 ;
--
-- 导出表中的数据 `tvmenu`
--
INSERT INTO `tvmenu` (`id`, `bid`, `name`, `url`) VALUES
(1, 0, '电视1', ''),
(2, 0, '电视2', ''),
(3, 1, '电视3', ''),
(4, 1, '电视4', ''),
(5, 2, '电视5', ''),
(6, 2, '电视6', ''),
(7, 3, '电视7', ''),
(8, 3, '电视8', ''),
(9, 3, '电视9', ''),
(10, 5, '电视10', ''),
(11, 5, '电视11', ''),
(12, 5, '电视12', ''),
(13, 6, '电视13', ''),
(14, 6, '电视1422', '');
图片
tree.php
<?php
$Conn=mysql_connect("localhost","root","");
mysql_select_db("lianxi"); //打开数据库
mysql_query("set names 'utf8'");
$tpye=trim($_GET["tpye"]);
$action=$_GET["action"];
$id=$_GET["id"];
$b=trim($_GET["b"]);
$name=$_POST["name"];
$bid=$_POST["bid"];
switch ($action) {
case add:
$sql="INSERT INTO tvmenu (`bid` ,`name` ,`url` )VALUES ( '$bid', '$name', NULL)";
$qu=mysql_query($sql,$Conn);
if($qu){
$add="";
print "<script language='javascript'>alert('添加成功!');window.location='tvmenu.php'</script>";
exit;
}
break;
case edit:
$sql="update tvmenu set name='$name', bid='$bid' where id='$id'";
$qu=mysql_query($sql,$Conn);
if($qu){
$edit="";
//header ("Location:tvmenu.php");
echo "<script language='javascript'>alert('编辑成功!');window.location='tvmenu.php'</script>";
exit;
}
break;
case del:
$sql="delete FROM tvmenu WHERE id='$b'";
$qu=mysql_query($sql,$Conn);
if($qu){
$del="";
echo "<script language='javascript'>alert('删除成功!');window.location='tvmenu.php'</script>";
exit;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<head>
<style type="text/css">
<!--
.Menu { COLOR:#000000; FONT-SIZE: 12px; CURSOR: hand;}
</style>
<script type="text/javascript">
function ShowMenu(MenuID)
{
if(MenuID.style.display=="none")
{
MenuID.style.display="";
}
else
{
MenuID.style.display="none";
}
}
</script>
<title>电视树状目录</title>
</head>
<body>
<?php
$GLOBALS["id"] =1;
$jibie=1;
$sql="select * from tvmenu where bid=0";
$result=mysql_query($sql,$Conn);
if(mysql_num_rows($result)>0)
TreeMenu($Conn,$result,$jibie,$id);
function TreeMenu($Conn,$result,$jibie) //进入函数循环
{
$numrows=mysql_num_rows($result);
echo "<table cellpadding='0' cellspacing='0' border='0'>";
for($rows=0;$rows<$numrows;$rows++)
{
$menu=mysql_fetch_array($result);
$sql="select * from tvmenu where bid=$menu[id]";
$result_sub=mysql_query($sql,$Conn);
echo "<tr>";
//如果该菜单项目有子菜单,则添加JavaScript onClick语句
if(mysql_num_rows($result_sub)>0)
{
echo "<td width='20'><img src='+.gif' border='0'></td>";
echo "<td class='Menu' onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].");'>";
}
else
{
echo "<td width='20'><img src='-.gif' border='0'></td>";
echo "<td class='Menu'>";
}
if($menu[url]!="")
echo "<a href='$menu[url]'>$menu[name]</a> ";
else
echo "<a href='#'>$menu[name]</a> <a href='?b={$menu[id]}&tpye=add'> 添加</a> <a href='?b={$menu[id]}&tpye=edit'> 编辑</a> <a href='?b={$menu[id]}&action=del'> 删除</a>";
echo "</td> </tr>";
if(mysql_num_rows($result_sub)>0)
{
echo "<tr id=Menu".$GLOBALS["ID"]++." style='display:none'>";
echo "<td width='20'> </td>";
echo "<td>";
//将级数加1
$jibie++;
TreeMenu($Conn,$result_sub,$jibie);
$jibie--;
echo "</td></tr>";
}
//显示下一菜单
}
echo "</table>";
}
?>
<br />
<br />
<?php if ($tpye=="add") { ?>
<table width="551" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<form action="?tpye=add&action=add" method="post" name="form1">
<tr>
<td height="28" colspan="2" align="center" bgcolor="#FFFFFF">添加栏目</td>
</tr>
<tr>
<td width="246" height="28" align="right" bgcolor="#FFFFFF">栏目名称:</td>
<td width="302" height="28" bgcolor="#FFFFFF"><input name="name" type="text" id="name" /></td>
</tr>
<tr>
<td height="28" align="right" bgcolor="#FFFFFF">所属分类:</td>
<td height="28" bgcolor="#FFFFFF"><select name="bid">
<?php
$sql="select * from tvmenu";
$que=mysql_query($sql,$Conn);
while($rs=mysql_fetch_array($que)){
if ($rs['id']==$b) {
$selected="selected=\"selected\"";
}else{
$selected="";
}
?>
<option value="<?php echo $rs["id"]; ?>" <?php echo $selected;?>><?php echo $rs["name"]; ?></option>
<?php }?>
</select>
</td>
</tr>
<tr>
<td height="28" colspan="2" align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提 交" /></td>
</tr>
</form>
</table>
<?php }?>
<?php if ($tpye=="edit") {
$sql="select * from tvmenu where id='$b'";
//echo $sql ;
//exit;
$quea=mysql_query($sql,$Conn);
$rsa=mysql_fetch_array($quea);
?>
<table width="551" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<form action="?id=<?php echo $b;?>&tpye=add&action=edit" method="post" name="form1">
<tr>
<td height="28" colspan="2" align="center" bgcolor="#FFFFFF">编辑栏目</td>
</tr>
<tr>
<td width="246" height="28" align="right" bgcolor="#FFFFFF">栏目名称:</td>
<td width="302" height="28" bgcolor="#FFFFFF"><input name="name" type="text" id="name" value="<?php echo $rsa['name'];?>" /></td>
</tr>
<tr>
<td height="28" align="right" bgcolor="#FFFFFF">所属分类:</td>
<td height="28" bgcolor="#FFFFFF"><select name="bid">
<?php
$sql="select * from tvmenu where bid <>".$rsa['bid']." ";
$que=mysql_query($sql,$Conn);
while($rs=mysql_fetch_array($que)){
if ($rs["id"]==$rsa['bid']) {
$selected="selected=\"selected\"";
}else{
$selected="";
}
?>
<option value="<?php echo $rs["id"]; ?>" <?php echo $selected;?>><?php echo $rs["name"]; ?></option>
<?php
}
?>
</select>
</select>
</td>
</tr>
<tr>
<td height="28" colspan="2" align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提 交" /></td>
</tr>
</form>
</table>
<?php }?>
<br />
注:"+"为存在子目录,可以展开,"-"为终极分类.
</body>
</html>
db: lianxi
test :tvmenu
CREATE TABLE IF NOT EXISTS `tvmenu` (
`id` tinyint(4) NOT NULL auto_increment,
`bid` tinyint(4) NOT NULL default '0',
`name` varchar(20) default NULL,
`url` varchar(60) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=16 ;
--
-- 导出表中的数据 `tvmenu`
--
INSERT INTO `tvmenu` (`id`, `bid`, `name`, `url`) VALUES
(1, 0, '电视1', ''),
(2, 0, '电视2', ''),
(3, 1, '电视3', ''),
(4, 1, '电视4', ''),
(5, 2, '电视5', ''),
(6, 2, '电视6', ''),
(7, 3, '电视7', ''),
(8, 3, '电视8', ''),
(9, 3, '电视9', ''),
(10, 5, '电视10', ''),
(11, 5, '电视11', ''),
(12, 5, '电视12', ''),
(13, 6, '电视13', ''),
(14, 6, '电视1422', '');
图片
tree.php
<?php
$Conn=mysql_connect("localhost","root","");
mysql_select_db("lianxi"); //打开数据库
mysql_query("set names 'utf8'");
$tpye=trim($_GET["tpye"]);
$action=$_GET["action"];
$id=$_GET["id"];
$b=trim($_GET["b"]);
$name=$_POST["name"];
$bid=$_POST["bid"];
switch ($action) {
case add:
$sql="INSERT INTO tvmenu (`bid` ,`name` ,`url` )VALUES ( '$bid', '$name', NULL)";
$qu=mysql_query($sql,$Conn);
if($qu){
$add="";
print "<script language='javascript'>alert('添加成功!');window.location='tvmenu.php'</script>";
exit;
}
break;
case edit:
$sql="update tvmenu set name='$name', bid='$bid' where id='$id'";
$qu=mysql_query($sql,$Conn);
if($qu){
$edit="";
//header ("Location:tvmenu.php");
echo "<script language='javascript'>alert('编辑成功!');window.location='tvmenu.php'</script>";
exit;
}
break;
case del:
$sql="delete FROM tvmenu WHERE id='$b'";
$qu=mysql_query($sql,$Conn);
if($qu){
$del="";
echo "<script language='javascript'>alert('删除成功!');window.location='tvmenu.php'</script>";
exit;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<head>
<style type="text/css">
<!--
.Menu { COLOR:#000000; FONT-SIZE: 12px; CURSOR: hand;}
</style>
<script type="text/javascript">
function ShowMenu(MenuID)
{
if(MenuID.style.display=="none")
{
MenuID.style.display="";
}
else
{
MenuID.style.display="none";
}
}
</script>
<title>电视树状目录</title>
</head>
<body>
<?php
$GLOBALS["id"] =1;
$jibie=1;
$sql="select * from tvmenu where bid=0";
$result=mysql_query($sql,$Conn);
if(mysql_num_rows($result)>0)
TreeMenu($Conn,$result,$jibie,$id);
function TreeMenu($Conn,$result,$jibie) //进入函数循环
{
$numrows=mysql_num_rows($result);
echo "<table cellpadding='0' cellspacing='0' border='0'>";
for($rows=0;$rows<$numrows;$rows++)
{
$menu=mysql_fetch_array($result);
$sql="select * from tvmenu where bid=$menu[id]";
$result_sub=mysql_query($sql,$Conn);
echo "<tr>";
//如果该菜单项目有子菜单,则添加JavaScript onClick语句
if(mysql_num_rows($result_sub)>0)
{
echo "<td width='20'><img src='+.gif' border='0'></td>";
echo "<td class='Menu' onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].");'>";
}
else
{
echo "<td width='20'><img src='-.gif' border='0'></td>";
echo "<td class='Menu'>";
}
if($menu[url]!="")
echo "<a href='$menu[url]'>$menu[name]</a> ";
else
echo "<a href='#'>$menu[name]</a> <a href='?b={$menu[id]}&tpye=add'> 添加</a> <a href='?b={$menu[id]}&tpye=edit'> 编辑</a> <a href='?b={$menu[id]}&action=del'> 删除</a>";
echo "</td> </tr>";
if(mysql_num_rows($result_sub)>0)
{
echo "<tr id=Menu".$GLOBALS["ID"]++." style='display:none'>";
echo "<td width='20'> </td>";
echo "<td>";
//将级数加1
$jibie++;
TreeMenu($Conn,$result_sub,$jibie);
$jibie--;
echo "</td></tr>";
}
//显示下一菜单
}
echo "</table>";
}
?>
<br />
<br />
<?php if ($tpye=="add") { ?>
<table width="551" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<form action="?tpye=add&action=add" method="post" name="form1">
<tr>
<td height="28" colspan="2" align="center" bgcolor="#FFFFFF">添加栏目</td>
</tr>
<tr>
<td width="246" height="28" align="right" bgcolor="#FFFFFF">栏目名称:</td>
<td width="302" height="28" bgcolor="#FFFFFF"><input name="name" type="text" id="name" /></td>
</tr>
<tr>
<td height="28" align="right" bgcolor="#FFFFFF">所属分类:</td>
<td height="28" bgcolor="#FFFFFF"><select name="bid">
<?php
$sql="select * from tvmenu";
$que=mysql_query($sql,$Conn);
while($rs=mysql_fetch_array($que)){
if ($rs['id']==$b) {
$selected="selected=\"selected\"";
}else{
$selected="";
}
?>
<option value="<?php echo $rs["id"]; ?>" <?php echo $selected;?>><?php echo $rs["name"]; ?></option>
<?php }?>
</select>
</td>
</tr>
<tr>
<td height="28" colspan="2" align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提 交" /></td>
</tr>
</form>
</table>
<?php }?>
<?php if ($tpye=="edit") {
$sql="select * from tvmenu where id='$b'";
//echo $sql ;
//exit;
$quea=mysql_query($sql,$Conn);
$rsa=mysql_fetch_array($quea);
?>
<table width="551" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<form action="?id=<?php echo $b;?>&tpye=add&action=edit" method="post" name="form1">
<tr>
<td height="28" colspan="2" align="center" bgcolor="#FFFFFF">编辑栏目</td>
</tr>
<tr>
<td width="246" height="28" align="right" bgcolor="#FFFFFF">栏目名称:</td>
<td width="302" height="28" bgcolor="#FFFFFF"><input name="name" type="text" id="name" value="<?php echo $rsa['name'];?>" /></td>
</tr>
<tr>
<td height="28" align="right" bgcolor="#FFFFFF">所属分类:</td>
<td height="28" bgcolor="#FFFFFF"><select name="bid">
<?php
$sql="select * from tvmenu where bid <>".$rsa['bid']." ";
$que=mysql_query($sql,$Conn);
while($rs=mysql_fetch_array($que)){
if ($rs["id"]==$rsa['bid']) {
$selected="selected=\"selected\"";
}else{
$selected="";
}
?>
<option value="<?php echo $rs["id"]; ?>" <?php echo $selected;?>><?php echo $rs["name"]; ?></option>
<?php
}
?>
</select>
</select>
</td>
</tr>
<tr>
<td height="28" colspan="2" align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="提 交" /></td>
</tr>
</form>
</table>
<?php }?>
<br />
注:"+"为存在子目录,可以展开,"-"为终极分类.
</body>
</html>
相关文章推荐
- php 无线级别分类 实现评论回复功能
- php无线分类代码
- PHPTree――php快速生成无限级分类
- php 递归无线级别分类
- PHPTree——快速生成无限多级分类
- php大力力 [025节] 来不及学习和分类的,大力力认为有价值的一些技术文章合集(大力力二叔公)(2015-08-27)
- PHP日志分类脚步
- PHP递归实现无限级分类
- PHP无限级分类(嵌套集合模型)
- php无限分类的思想
- PHP无限极分类
- PHP无限极分类
- php中商品无限极分类
- php 调用函数实现二级分类
- 关于PHP CodeIgniter框架中通过<a>标签和url做多条件分类筛选
- PHP递归实现无限分类数组处理
- PHP无限级分类实现(递归+非递归)
- PHP数组常用函数分类整理
- php迭代和递归求子地区无限级分类数组
- 一棵php的类树(支持无限分类)