Home > Backend Development > PHP Tutorial > PHP+mysql database method to achieve unlimited classification, mysql database_PHP tutorial

PHP+mysql database method to achieve unlimited classification, mysql database_PHP tutorial

WBOY
Release: 2016-07-13 10:11:49
Original
845 people have browsed it

php+mysql database method to achieve unlimited classification, mysql database

The example in this article describes the method of realizing unlimited classification in php+mysql database. Share it with everyone for your reference. The specific analysis is as follows:

This PHP unlimited classification code is relatively complete, including that the database is MySQL, with the functions of adding, deleting, editing, and moving, and also provides the database SQL table structure. The code is as follows:

Copy the code The code is as follows:
//Connect to the 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(emptyempty($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 = !emptyempty($_post['op']) ? $_post['op'] : $_get['op'];
if(!emptyempty($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();
?>

The foreground call example code is as follows:
Copy code The code is as follows:



Name: Add to:





Mobile Category



gt;Move to:




    foreach ($category as $id){
    echo '
  • '.$tree->getlayer($id, '|- ').$tree->getvalue($id).' del edit
  • ';
    }
    ?>

It’s OK to import this database with phpmyadmin. The example code is as follows:
Copy code The code is as follows:
-- phpmyadmin sql dump
-- version 3.2.4
--
-- Host: localhost
-- Generated date: July 2, 2010 03:02
-- Server version: 5.1.41
-- php version: 5.3.1
set sql_mode="no_auto_value_on_zero";

/*!40101 set @old_character_set_client=@@character_set_client */;
/*!40101 set @old_character_set_results=@@character_set_results */;
/*!40101 set @old_collation_connection=@@collation_connection */;
/*!40101 set names utf8 */;
--
-- Database: `class`
--
-------------------------------------------------- --------
--
-- Table structure `p_newsclass`
--
create table if not exists `p_newsclass` (
`id` int(7) not null auto_increment,
`f_id` int(7) not null,
`name` varchar(255) not null,
primary key (`id`)
) engine=innodb default charset=utf8 auto_increment=10;
--
-- Transfer data in the table `p_newsclass`
--
insert into `p_newsclass` (`id`, `f_id`, `name`) values ​​
(3, 0, 'China'),
(4, 3, 'Fujian'),
(5, 4, 'Longyan City'),
(7, 4, 'Xiamen City'),
(9, 5, 'Zhangping City');
/*!40101 set character_set_client=@old_character_set_client */;
/*!40101 set character_set_results=@old_character_set_results */;
/*!40101 set collation_connection=@old_collation_connection */;

I hope this article will be helpful to everyone’s PHP+mysql program design.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/926871.htmlTechArticlephp+mysql database to achieve unlimited classification, mysql database This article describes the example of php+mysql database to achieve unlimited classification method. Share it with everyone for your reference. The specific analysis is as follows...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template