加入收藏 | 设为首页 | 会员中心 | 我要投稿 驾考网 (https://www.jiakaowang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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.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);  

   

(编辑:驾考网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章