//连接数据库教程

$link = mysql教程_connect('localhost','root','密码') or die(mysql_error());

mysql_select_db('sortclass',$link);

mysql_query("set names 'gbk'");

//无限分类类库

class sortclass{

var $data = array();

var $child = array(-1=>array());

var $layer = array(-1=>-1);

var $parent = array();

var $link;

var $table;

function sortclass($link, $table){

$this->setnode(0, -1, '顶极节点');

$this->link = $link;

$this->table = $table;

$node = array();

$results = mysql_query('select * from '.$this->table.'',$this->link);

while($node = mysql_fetch_assoc($results)){

$this->setnode($node['cid'],$node['pid'],$node['cname']);

}

}

function setnode ($id, $parent, $value){

$parent = $parent?$parent:0;

$this->data[$id] = $value;

$this->child[$id] = array();

$this->child[$parent][] = $id;

$this->parent[$id] = $parent;

$this->layer[$id] = !isset($this->layer[$parent])? 0 : $this->layer[$parent] + 1;

}

function getlist (&$tree, $root= 0){

foreach ($this->child[$root] as $key=>$id){

$tree[] = $id;

if ($this->child[$id]) $this->getlist($tree, $id);

}

}

function getvalue ($id){return $this->data[$id];}

function getlayer ($id, $space = false){

return $space?str_repeat($space, $this->layer[$id]):$this->layer[$id];

}

function getparent ($id){return $this->parent[$id];}

function getparents ($id){

while ($this->parent[$id] != -1){

$id = $parent[$this->layer[$id]] = $this->parent[$id];

}

ksort($parent);

reset($parent);

return $parent;

}

function getchild ($id){return $this->child[$id];}

function getchilds ($id = 0){

$child = array($id);

$this->getlist($child, $id);

return $child;

}

function addnode($name,$pid){

mysql_query("insert into $this->table (`pid`,`cname`) values ('$pid','$name')",$this->link);

}

function modnode($cid, $newname){

mysql_query("update $this->table set `cname`='$newname' where `cid` = $cid",$this->link);

}

function delnode($cid){

$allchilds = $this->getchilds($cid);

$sql ='';

if(empty($allchilds)){

$sql = "delete from $this->table where `cid` = $cid";

}else{

$sql = 'delete from '.$this->table.' where `cid` in ('.implode(',',$allchilds).','.$cid.')';

}

mysql_query($sql,$this->link);

}

function movenode($cid, $topid){

mysql_query("update $this->table set `pid`=$topid where `cid` = $cid", $this->link);

}

}

//函数

function back(){

echo '';

exit;

}

//生成select

function makeselect($array,$formname){

global $tree;

$select = '';

foreach ($array as $id){

$select.=''.$tree->getlayer($id, '|-').$tree->getvalue($id)."";

}

return $select.'';

}

$tree = new sortclass($link,'`class`');

$op = !empty($_post['op']) ? $_post['op'] : $_get['op'];

if(!empty($op)){

if($op=='add'){

$tree->addnode($_post['cname'],$_post['pid']);

back();

}

if($op=='mod'){

$tree->modnode($_post['cid'],$_post['cname']);

back();

}

if($op=='del'){

$tree->delnode($_get['cid']);

back();

}

if($op=='move'){

$tree->movenode($_post['who'],$_post['to']);

back();

}

}

$category = $tree->getchilds();

?>

添加分类

名称: 添加到:=makeselect($category,'pid')?>

移动分类

=makeselect($category,'who')?>移动到:=makeselect($category,'to')?>

'.$tree->getlayer($id, '|- ').$tree->getvalue($id).' del edit ';

}

?>

完整的新闻无限级分类代码,可添加,删除,移动,修改

顶极节点 del edit

|- 1级分类del edit

|- 1级分类 del edit

|- 1级分类 del edit

|- |- 2级分类 del edit

|- |- |- 3级分类 del edit

|- |- |-|- 4级分类 del edit

|- 1级分类 del edit

php修改新闻分类代码,完整的新闻无限级分类代码,可添加,删除,移动,修改相关推荐

  1. php无限级分类是什么意思,PHP 无限级分类(递归)

    网上有很多,这是我自己做测试用的 $arr = array( array('id'=>1,'name'=>'电脑','pid'=>0), array('id'=>2,'name ...

  2. php无极分类非递归_php实现无限级分类(递归方法)

    相信很多学php的很多小伙伴都会尝试做一个网上商城作为提升自己技术的一种途径.各种对商品分类,商品名之类的操作应该是得心应手,那么就可以尝试下无限级分类列表的制作了. 到网上一搜php无限极分类,很多 ...

  3. 利用vue制作一个简单的信息登记表 ---添加删除和修改

    添加信息和按照索引值删除信息 (1)登记表的样式: (2)大致思路 把输入框里的姓名,年龄,性别双向绑定data里对应的变量,变量赋初值皆为空(性别赋初值为男).是否同意协议,默认不同意:给提交按钮绑 ...

  4. Java的web项目练习,展示数据库中所有联系人的信息,并实现添加,删除和修改功能

    整体思路:  在项目首页写一个超链接,连接地址为一个servlet(ServletDome2)-->(通过service层和dao层到数据库中查询并获取联系人表中的所有联系人的所有信息),将获取 ...

  5. SQL2K数据库开发七之表操作添加删除和修改列

    1.在已有的表中添加.删除和修改列可以使用Transact-SQL中的ALTER TABLE语句,使用ALTER TABLE语句的语法为: 2.在SQL Server查询分析器中输入如下语句,往Pro ...

  6. 将dataGridView中的添加/删除等修改保存至数据库

    C#示例代码如下: using System.Data; using System.Data.SqlClient; public partial class Form1 : Form     { Da ...

  7. 在linux中如何修改保存gun文件_Linux下文件重命名、创建、删除、修改及保存文件...

    一.重命名(更名) linux 给文件改名的命令是mv命令 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中.该命令等同于DOS系统下的ren和move命令的组合.它的使用权限是所有用户. ...

  8. android卡刷包自制rom之添加删除,自己修改安卓刷机包ROM教程

    <自己修改安卓刷机包ROM教程>由会员分享,可在线阅读,更多相关<自己修改安卓刷机包ROM教程(3页珍藏版)>请在人人文库网上搜索. 1.安卓个性化刷机包ROM定制教程本教程分 ...

  9. scp命令密码写命令里_dos命令net图文教程,net user添加删除用户修改密码批处理脚本...

    大家好,我是老盖,首先感谢观看本文,本篇文章做的有视频,视频讲述的比较详细,也可以看我发布的视频. 今天我们学习net命令中的user这个命令,输入命令,net user /?,可以看到这个命令的语法 ...

最新文章

  1. 【物理方程】物理学中最难的方程之一,你知道多少?
  2. 华为云免费体验 怎么使用_华为云Classroom免费向全国高校开放,云端学习更高效...
  3. python不定参数的函数实现_python传入不定参数是什么
  4. 乌班图安装pycharm
  5. 形象解释 undefined 和 null 之间的区别
  6. 【干货】长文详解Attention的前世今生
  7. 手把手教你使用Python做数据分析
  8. QT学习之路:从入门到精通
  9. 纯css实现那些超炫酷的动画效果
  10. 华为联运游戏审核驳回:在未安装或需更新HMS Core的手机上,提示安装,点击取消后,游戏卡屏(集成的6.1.0.301版本游戏SDK)
  11. 已知网络号如何求子网掩码?
  12. 网络安全之僵尸网络与蠕虫的学习笔记
  13. 怎么利用计算机为学生成绩进行排名,使用excel为学生成绩排序的方法和步骤
  14. JavaScript----json
  15. memcache的优点与缺点
  16. 一阶谓词与一元谓词的区别
  17. JVM 中一次完整的 GC 流程是什么样子的,对象如何晋升到老年代,
  18. 简述如何编写java程序_1-4 简述 Eclipse 编写 Java 程序的流程。_学小易找答案
  19. HTML tag(标签)用法
  20. [股票预测]基于ARIMA股票预测

热门文章

  1. C语言经典例76-根据n的奇偶性累加
  2. 【开发环境】戴尔电脑系统重装 ( 下载 Dell OS Recovery Tool 工具 | 使用 Dell OS Recovery Tool 工具制作 U 盘系统 | 安装系统 )
  3. 【Java 并发编程】线程简介 ( 并发类型 | 线程状态 | CPU 数据缓存 )
  4. 【RecyclerView】二、RecyclerView 简介 ( RecyclerView 特点 | RecyclerView 涉及到的类 )
  5. AtCoder Grand Contest 013D: Piling Up 题解
  6. 模板方法及策略设计模式实践
  7. C#文件夹权限操作工具类
  8. Java基础教程:反射基础
  9. iframe子页面点击按钮,执行父页面的点击事件
  10. 使用 ftrace 调试 Linux 内核,第 2 部分