php+mysql无限级分类法
发布时间:2023-06-20 14:02:28 所属栏目:PHP教程 来源:
导读:class.sql
-- 表的结构 `class`
set names utf8;
CREATE TABLE `class` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(250) character set utf8 default NULL,
`classid
-- 表的结构 `class`
set names utf8;
CREATE TABLE `class` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(250) character set utf8 default NULL,
`classid
|
class.sql -- 表的结构 `class` set names utf8; CREATE TABLE `class` ( `id` int(10) NOT NULL auto_increment, `name` varchar(250) character set utf8 default NULL, `classid` int(10) default NULL, `sort` int(10) not null default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ; -- 导出表中的数据 `class` INSERT INTO `class` (`id`,`name`,`classid`,`sort`) VALUES (1,'中国',1), (2,'广西',1, (3,'桂林',2,2), (4,'广东', (5,'北京',3), (6,'东莞',4,10), (7,'南宁', (8,'阳朔',3, (9,'柳州', (10,'广州',10); index.PHP <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无限级分类</title> <style type="text/css"> * { padding:0; margin:0; } body { font: 14px Arial,Helvetica,sans-serif; overflow-x: hidden; overflow-y:auto; color:#444444; } #main { width:600px; margin:20px auto; } #main table{ margin-top:8px; width:100%; border-collapse:collapse; border-spacing:0px; BACKGROUND-COLOR: #EFEFEF; border:0px; } #main table td{ line-height:20px; border:1px solid #FFF; padding:5px; } #main table thead td { background:#C6C6C6; FONT-SIZE:15px; text-align:center; line-height:23px; font-weight:bold; } .input { border-top: 1px inset; border-left: 1px inset; padding:2px 3px; } </style> </head> <body> <div id="main"> <a href="?action=">分类列表</a> <a href="?action=add">添加分类</a> <?PHP $MysqL = new MysqL_Class('localhost','root',''); $MysqL -> select_db('test'); switch($_GET['action']){ case 'add': $class_arr=array(); $sql = "select * from `class` order by sort asc,id Desc"; $query = $MysqL -> query($sql); while($row = $MysqL -> fetch_array($query)){ $class_arr[] = array($row['id'],$row['name'],$row['classid'],$row['sort']); } ?> <form action="?action=act_add" method="post"> <table border="0" cellpadding="0" cellspacing="0" class="table02"> <thead> <tr> <td colspan="2"><div align="center">添加分类</div></td> </tr> </thead> <tr> <td><div align="right">分类名称:</div></td> <td><input name="name" type="text" class="input" id="name" value="" size="40" /></td> </tr> <tr> <td><div align="right">所属分类ID:</div></td> <td><select name="classid" id="classid"> <option value="0">-----顶级分类-----</option> <?PHP infinite_select(0,0); ?> </select> </td> </tr> <tr> <td><div align="right">排序:</div></td> <td><input name="sort" type="text" class="input" id="sort" value="10" size="25" /></td> </tr> <tr> <td colspan="2"><div align="center"> <input type="submit" name="button" id="button" value="添加分类" /> <input type="reset" name="button2" id="button2" value="重置" /> </div></td> </tr> </table> </form> <?PHP break; case 'act_add': $sql = "INSERT INTO `class` (`name`,`sort`) VALUES('".$_POST['name']; $sql .= "',".$_POST['classid'].",".$_POST['sort'].")"; $MysqL -> query($sql); msg('添加成功!','?action='); break; case 'edit': $class_arr=array(); $sql = "select * from `class` order by sort asc,$row['sort']); } $sql = "select * from `class` where id=".$_GET['id']; $query = $MysqL -> query($sql); $row = $MysqL -> fetch_array($query); if($row){ ?> <form action="?action=act_edit" method="post"> <table border="0" cellpadding="0" cellspacing="0" class="table02"> <thead> <tr> <td colspan="2"><div align="center">修改分类</div></td> </tr> </thead> <tr> <td><div align="right">分类名称:</div></td> <td><input name="name" type="text" class="input" id="name" value="<?PHP echo $row['name'];?>" size="40" /></td> </tr> <tr> <td><div align="right">所属分类ID:</div></td> <td><select name="classid" id="classid"> <option value="0">-----顶级分类-----</option> <?PHP infinite_select(0,$row['classid']); ?> </select> </td> </tr> <tr> <td><div align="right">排序:</div></td> <td><input name="sort" type="text" class="input" id="sort" value="<?PHP echo $row['sort'];?>" size="25" /></td> </tr> <tr> <td colspan="2"><div align="center"> <input type="hidden" id="id" name="id" value="<?PHP echo $_GET['id'];?>" /> <input type="submit" name="button" id="button" value="修改分类" /> <input type="reset" name="button2" id="button2" value="重置" /> </div></td> </tr> </table> </form> <?PHP }else{ msg('要修改的记录不存在!','?action='); } break; case 'act_edit': $sql = "select id from `class` where id=".$_POST['id']; $query = $MysqL -> query($sql); $row = $MysqL -> fetch_array($query); if($row){ if($row['id']==$_POST['classid']){ msg('修改失败,不能自己是自己的子分类!','?action='); }else{ $sql = "update `class` set `name`='".$_POST['name']."',`classid`=".$_POST['classid']; $sql .= ",`sort`=".$_POST['sort']." where `id`=".$_POST['id']; $MysqL -> query($sql); msg('修改成功!','?action='); } } break; case 'del': $sql = "select * from `class` where id=".$_GET['id']; $query = $MysqL -> query($sql); $row = $MysqL -> fetch_array($query); if($row){ $MysqL -> query("delete from `class` where id=".$_GET['id']); msg('删除成功!','?action='); }else{ msg('记录不存在!','?action='); } break; case '': $class_arr=array(); $sql = "select * from `class` order by sort asc,$row['sort']); } ?> <table class="table"> <thead> <tr> <td >分类名称</td> <td width="60"><div align="center">排序</div></td> <td width="80"><div align="center">操作</div></td> </tr> </thead> <?PHP infinite_arr(0,0);?> </table> <?PHP break; } ?> </div> </body> </html> <?PHP function msg($msg,$url) { echo "<script type="text/javascript">alert('$msg');window.location.href='$url';</script>"; } function infinite_arr($m,$id) { global $class_arr; global $classid; global $MysqL; if($id=="") $id=0; $n = str_pad('',$m,'-',STR_PAD_RIGHT); $n = str_replace("-"," ",$n); for($i=0;$i<count($class_arr);$i++){ if($class_arr[$i][2]==$id){ echo "<tr>n"; echo "<td>".$n."|----<a href="?action=edit&id=".$class_arr[$i][0]."">".$class_arr[$i][1]."</a></td>n"; echo " <td><div align="center">".$class_arr[$i][3]."</div></td>n"; echo " <td><div align="center"><a href="?action=edit&id=".$class_arr[$i][0]."">修改</a>"; echo " <a href="?action=del&id=".$class_arr[$i][0]."">删除</a>"; echo "</div></td>n"; echo " </tr>n"; infinite_arr($m+1,$class_arr[$i][0]); function infinite_select($m,$id,$index) { global $class_arr; $n = str_pad(''," ",$n); for($i=0;$i<count($class_arr);$i++){ if($class_arr[$i][2]==$id){ if($class_arr[$i][0]==$index){ echo "<option value="".$class_arr[$i][0]."" selected="selected">".$n."|----".$class_arr[$i][1]."</option>n"; }else{ echo "<option value="".$class_arr[$i][0]."">".$n."|----".$class_arr[$i][1]."</option>n"; } infinite_select($m+1,$class_arr[$i][0],$index); (编辑:驾考网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
