作者:mobiledu2502886077 | 来源:互联网 | 2017-05-13 02:31
打造PHP的无限分级类(完整代码及注释)。下面提供一个PHP的无限分级类代码,想要实现无限分级类的朋友们可以试试。Bug已经检查修正过,直接复制代码就能使用尖括号需要替换一
下面提供一个PHP的无限分级类代码,想要实现无限分级类的朋友们可以试试。Bug已经检查修正过,直接 就能使用尖括号需要替换一下)。
1、数据库ProductShow中有b_mtype表,建表语句如下:
- CREATE TABLE `b_mtype` (
- `typeid` int(4) NOT NULL default '0',
- `typename` varchar(50) NOT NULL default '',
- `parentid` int(4) NOT NULL default '0',
- `parentstr` varchar(200) NOT NULL default '',
- `depth` int(4) NOT NULL default '0',
- `rootid` int(4) NOT NULL default '0',
- `child` varchar(200) NOT NULL default '',
- `orders` varchar(200) NOT NULL default '',
- PRIMARY KEY (`typeid`)
- ) TYPE=MyISAM;
-
2、ProductClass.php代码:直接复制即可)
-
-
- "Content-Type" cOntent="text/html; charset=gb2312" />
-
-
-
-
-
- ini_set("error_reporting","E_ALL & ~E_NOTICE");
- require_once("conn.php");
- @$ToDo=$_GET["ToDo"];
- switch($ToDo)
- {
- case "add":
- echo add();
- break;
-
- case "edit":
- echo edit();
- break;
-
- case "saveadd":
- echo saveadd();
- break;
-
- case "saveedit":
- echo saveedit();
- break;
-
- case "del":
- echo del();
- break;
-
- default:
- ?>
-
"90%" border="0" align="center" cellpadding="0" cellspacing="0" class="tblborder"> -
"top">"100%" border="0" cellspacing="1" cellpadding="3"> -
-
"55%" height="20" align="center" bgcolor="#698FC7">class="tblhead">class="STYLE2">商品类别设置 "?ToDo=add">添加一个新类别 | -
-
-
-
-
| -
- break;
- }
- ?>
-
-
-
- function add(){
- @$editid=$_REQUEST["editid"];
- ?>
- "form1" method="post" action="?ToDo=saveadd">
-
-
- }?>
-
-
- function saveadd(){
-
- $query=mysql_query("select typeid from b_mtype order by typeid desc limit 1");
- while($arr=mysql_fetch_array($query)){
- if (!$arr["typeid"]){
- $postnum=1;
-
- }else{
- $postnum=$arr["typeid"]+1;
-
- }
- }
- if(!$postnum) $postnum=1;
-
- $ntid =$postnum;
- $tn =$_REQUEST["typename"];
- $btype =$_REQUEST["btype"];
-
-
-
-
- if ($ntid=="" or $tn=="")
- {
- echo "";
- die();
- }
-
- if ($btype!=0){
-
- $result=mysql_query("select rootid,typeid,depth,orders,parentstr from b_mtype where typeid='$btype'");
- $aa=mysql_fetch_array($result);
- $rootid=$aa['rootid'];
-
- $parentid=$aa['typeid'];
- $depth=$aa['depth'];
- $orders=$aa['orders'];
- $parentstr=$aa['parentstr'];
-
-
- if(($aa["depth"]+1)>20){ die("本分类限制最多只能有20级分类"); }
-
- }
-
- if($ntid == $btype)
- {
- echo "";
- die();
- }
-
- if($btype!=0){
-
- $depth=$depth+1;
- $rootid=$rootid;
- $orders =$ntid;
- $parentid =$btype;
-
- if ($parentstr=="0"){
- $parentstr=$btype;
- }else{
- $parentstr=$parentstr.",".$btype;
- }
-
- }else{
- $depth=0;
- $rootid=$ntid;
- $orders=1;
- $parentid=0;
- $child=0;
- $parentstr=0;
- }
-
-
- $query=mysql_query("insert into b_mtype values('$ntid','$tn','$parentid','$parentstr','$depth','$rootid','','$orders')") ;
-
-
- if ($btype!=0)
- {
- if ($depth>0)
- {
-
- for ($i=1;$i<=$depth;$i++){
-
- if ($parentid!=""){
- $query=mysql_query("update b_mtype set child=child+1 where typeid='$parentid'");
- }
-
- $result=mysql_query("select parentid from b_mtype where typeid='$parentid'");
- $par=mysql_fetch_array($result);
-
- if ($par['parentid']!=""){
- $parentid=$par['parentid'];
- }
-
- if ($i==$depth && $parentid!=""){
- $query=mysql_query("update b_mtype set child=child+1 where typeid='$parentid'");
- }
- }
-
- $query=mysql_query("update b_mtype set orders=orders+1 where rootid='$rootid' and orders>'$orders'");
-
-
- $query=mysql_query("update b_mtype set orders='$orders'+1 where typeid='$ntid'");
-
- }else{
- $query=mysql_query("update b_mtype set child=child+1 where typeid='$btype'");
- $result=mysql_query("select max(orders) from b_mtype where typeid='$ntid'");
- $ord=mysql_fetch_array($result);
- $query=mysql_query("update b_mtype set orders='$ord[0]'+1 where typeid='$ntid'");
- }
-
- }
-
- echo "";
- }
- ?>
-
-
- function edit(){
-
-
- $editid=$_REQUEST["editid"];
-
- $result=mysql_query("select * from b_mtype where typeid='$editid'");
- $tn=mysql_fetch_array($result);
- ?>
- "form2" action ="?ToDo=saveedit" method="post">
- "hidden" name="editid" value="">
"90%" border="0" align=center cellpadding="3" cellspacing="1" bgcolor="#CCCCCC"> "#698FC7" class="STYLE2">编辑类别:echo $tn["typename"];?> |
"44%" height=30 bgcolor="#FFFFFF">类别名称 | "56%" bgcolor="#FFFFFF"> - "text" name="typename" size="35" value="typename"];?>">
|
-
"44%" height=30 bgcolor="#FFFFFF"> 所属类别 -
class="STYLE1">特别提示: - 所属类别不能指定当前类别(即自己)为父类别
- 所属类别不能指定当前类别的子类别为父类别
| "56%" bgcolor="#FFFFFF"> -
-
- $query=mysql_query("select * from b_mtype order by rootid,orders");
-
- while($arr=mysql_fetch_array($query))
- { ?>
- } ?>echo $arr["typename"]?>
-
- }
- ?>
-
|
-
"44%" height=2
推荐阅读
-
本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ...
[详细]
蜡笔小新 2024-11-23 16:56:38
-
权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ...
[详细]
蜡笔小新 2024-11-23 16:30:15
-
-
本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ...
[详细]
蜡笔小新 2024-11-23 19:57:51
-
本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ...
[详细]
蜡笔小新 2024-11-23 12:47:16
-
本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ...
[详细]
蜡笔小新 2024-11-23 12:05:53
-
本文详细介绍了在 JavaScript 编程中如何处理引号的多级嵌套问题,包括双引号、单引号以及转义字符的正确使用方法。 ...
[详细]
蜡笔小新 2024-11-23 11:47:34
-
本文介绍了一种有效的方法来解决在使用UIScrollView时出现的自动向下偏移的问题,通过调整特定的属性设置,可以确保滚动视图正常显示。 ...
[详细]
蜡笔小新 2024-11-23 11:01:29
-
本文介绍了在控制器中返回JSON结果的方法,并详细说明了如何利用jQuery处理和展示这些数据,为Web开发提供了实用的技巧。 ...
[详细]
蜡笔小新 2024-11-23 10:41:31
-
笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ...
[详细]
蜡笔小新 2024-11-23 10:34:04
-
Awk是一款功能强大的文本分析与处理工具,尤其在数据解析和报告生成方面表现突出。它通过读取由换行符分隔的记录,并按照指定的字段分隔符来划分和处理这些记录,从而实现复杂的数据操作。 ...
[详细]
蜡笔小新 2024-11-23 09:44:24
-
在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ...
[详细]
蜡笔小新 2024-11-22 21:05:22
-
本文提供了处理WordPress网站中出现过多重定向问题的方法,包括检查DNS配置、安装SSL证书以及解决数据库连接错误等步骤。 ...
[详细]
蜡笔小新 2024-11-22 19:59:07
-
本文详细介绍了如何解决在使用ADODB连接Access数据库时遇到的80004005错误,包括错误原因分析和具体的解决步骤。 ...
[详细]
蜡笔小新 2024-11-22 19:27:04
-
本文探讨了一种常见的C++面试题目——实现自己的String类。通过此过程,不仅能够检验开发者对C++基础知识的掌握程度,还能加深对其高级特性的理解。文章详细介绍了如何实现基本的功能,如构造函数、析构函数、拷贝构造函数及赋值运算符重载等。 ...
[详细]
蜡笔小新 2024-11-22 19:21:22
-
随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ...
[详细]
蜡笔小新 2024-11-22 19:15:42
-
mobiledu2502886077
这个家伙很懒,什么也没留下!
|