Home > Article > Backend Development > php+mysql database unlimited classification code (1/2)_PHP tutorial
php+mysql database unlimited classification code This PHP unlimited classification code is relatively complete, including that the database is MySQL, with the functions of adding, deleting, editing, and moving. It also provides database SQL table structure.
php tutorial + mysql tutorial database tutorial unlimited classification code
This PHP unlimited classification code is relatively complete, including that the database is MySQL, with the functions of adding, deleting, editing, and moving, and it also provides the database SQL table structure.
//Connect to database
$link = mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('class',$link)or die(mysql_error());
mysql_query("set names gbk");
//Unlimited classification library
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, 'Top node');
$this->link = $link;
$this->table = $table;
$node = array();
$results = mysql_query("select * from $this->table",$this->link);while($node = mysql_fetch_array($results)){
$this->setnode($node['id'],$node['f_id'],$node['name']);
}
}
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){
//echo "insert into $this->table (`f_id`,`name`) values ('$pid','$name')";exit;
mysql_query("insert into $this->table (`f_id`,`name`) values ('$pid','$name')",$this->link);}
function modnode($cid, $newname){
mysql_query("update $this->table set `name`='$newname' where `id` = $cid",$this->link);
}
function delnode($cid){
$allchilds = $this->getchilds($cid);
$sql ='';
if(empty($allchilds)){
$sql = "delete from $this->table where `id` = $cid";
}else{
$sql = 'delete from '.$this->table.' where `id` in ('.implode(',',$allchilds).','.$cid.')';
}
mysql_query($sql,$this->link);
}
function movenode($cid, $topid){
mysql_query("update $this->table set `f_id`=$topid where `id` = $cid", $this->link);
}
}
//Function
function back(){
echo '';
exit;
}
//Generate select
function makeselect($array,$formname){
global $tree;
$select = '';
}
$tree = new sortclass($link,''p_newsclass`');
$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();
?>
1 2