激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - php+mysql實(shí)現(xiàn)的無限分類方法類定義與使用示例

php+mysql實(shí)現(xiàn)的無限分類方法類定義與使用示例

2021-10-15 14:52下頁、再停留 PHP教程

這篇文章主要介紹了php+mysql實(shí)現(xiàn)的無限分類方法類定義與使用,結(jié)合實(shí)例形式分析了php+mysql無限分類方法類基本定義與使用方法,需要的朋友可以參考下

本文實(shí)例講述了php+mysql實(shí)現(xiàn)的無限分類方法類定義與使用。分享給大家供大家參考,具體如下:

創(chuàng)建數(shù)據(jù)庫以及表

?
1
2
3
4
5
6
7
8
CREATE DATABASE `sortclass`DEFAULT CHARSET utf8;
CREATE TABLE IF NOT EXISTS `class` (
`cid` mediumint(8) unsigned NOT NULL auto_increment,
`pid` mediumint(8) unsigned NOT NULL,
`cname` varchar(50) NOT NULL,
PRIMARY KEY (`cid`),
KEY `pid` (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
header("Content-type: text/html; charset=utf-8");
//連接數(shù)據(jù)庫
$link = mysql_connect('localhost','root','eric') or die(mysql_error());
mysql_select_db('sortclass',$link);
//無限分類類庫
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, '頂極節(jié)點(diǎn)');
  $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);
 }
}
//函數(shù)
function back(){
 echo '<script language="JavaScript">window.location.href="test.php?" rel="external nofollow" +new Date().getTime();</script>';
 exit;
}
//聲成select
function makeSelect($array,$formName){
 global $tree;
 $select = '<select name="'.$formName.'">';
 foreach ($array as $id){
  $select.='<option value="'.$id.'">'.$tree->getLayer($id, '|-').$tree->getValue($id)."</option>";
 }
 return $select.'</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();
?>
 <style type="text/css">
  body{font-size:12px;}
  ul{list-style:none;}
  a{cursor:pointer;}
 </style>
 <script language="javascript">
  function $(e){return document.getElementById(e);}
  function mod(cid){
   $('cid').value=cid;
   $('op').value='mod';
   $('name').style.border='1px solid red';
  }
 </script>
 <form action="test.php" method="post">
  名稱:<input type="text" id="name" name="cname" /> 添加到:<?=makeSelect($category,'pid')?><br />
  <input type="hidden" id="op" name="op" value="add" />
  <input type="hidden" id="cid" name="cid" />
  <input type="submit" value="Submit" />
 </form>
 <h3>移動分類</h3>
 <form action="test.php" method="post">
  <?=makeSelect($category,'who')?>移動到:<?=makeSelect($category,'to')?>
  <input type="hidden" id="op" name="op" value="move" />
  <input type="submit" value="Submit" />
 </form>
 <ul>
<?php
foreach ($category as $id){
 echo '<li>'.$tree->getLayer($id, '|- ').$tree->getValue($id).' <a href="test.php?op=del&cid='.$id.'" rel="external nofollow" >Del</a> <a onclick="mod('.$id.')">Edit</a> </li>';
}
?>
</ul>

希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。

原文鏈接:https://www.cnblogs.com/zxf100/p/11139004.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: xp123精品视频 | a黄在线观看 | 97久久精品一区二区三区观看 | 精品国产看高清国产毛片 | 91精品最新国内在线播放 | 日韩精品中文字幕一区二区三区 | 精品国产一区二区三区四区在线 | 在线免费av网站 | 玩偶姐姐在线观看免费 | 渔夫荒淫艳史 | 欧美成人一二三区 | 久久久国产视频 | 91重口视频| 99视频观看 | 日韩精品一区二区在线播放 | 中文字幕伦乱 | 中国av免费在线观看 | 黄 色 免费网 站 成 人 | 激情久久免费视频 | 国产一区免费视频 | 欧美一级片免费在线观看 | av在线网站观看 | 精品一区二区免费视频视频 | 亚洲一区在线国产 | 欧美一级免费看 | 亚洲国产精品久久久久婷婷老年 | av大全在线免费观看 | 亚洲网站在线观看 | 91成人亚洲 | 欧美视频在线一区二区三区 | 久久国产成人精品国产成人亚洲 | 国产精品免费看 | 黄色一级片毛片 | 欧美人与牲禽动交精品一区 | 一级黄色片武则天 | 青久草视频 | 在线看免费观看av | 欧美成a人片在线观看久 | 成人在线免费观看网址 | 欧美成年人视频在线观看 | 一级做a爰性色毛片免费1 |