PHP無限分類的例子(包括資料庫)轉

2021-05-21 21:12:45 字數 1860 閱讀 8544

其他常見的無限分類方法:

1,簡單的通過遞迴查詢加目錄path欄位的無限分類

缺點:查詢資料庫次數太多,不方便其他操作,比如刪除節點。新增節點,移動節點

2,左右值無限分類,預排序二叉樹

缺點:操作繁瑣,資料庫冗餘,且新增刪除修改都要進行左右值更新

本分類方法的優勢:

1,資料庫結構簡單,只有 cid parentid name 三個字段,無任何冗餘字段

2,不使用遞迴查詢,所有操作只需一條sql語句

3,所有資料在讀取一次資料庫後,在陣列內進行分析處理,節省資料庫伺服器資源

建立資料庫以及表:

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;

處理檔案示例:

<?php

header("content-type: text/html; charset=utf-8");

//連線資料庫

$link = mysql_connect('localhost','root','eric') or die(mysql_error());

mysql_select_db('sortclass',$link);

//無限分類類庫

class sortclass

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

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

}function getvalue ($id)

function getlayer ($id, $space = false)

function getparent ($id)

function getparents ($id)

ksort($parent);

reset($parent);

return $parent;

}function getchild ($id)

function getchilds ($id = 0)

function addnode($name,$pid)

function modnode($cid, $newname)

function delnode($cid)else

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

}function movenode($cid, $topid)

}//函式

function back()

//聲成select

function makeselect($array,$formname)

return $select.'';

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

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

if(!empty($op))

if($op=='mod')

if($op=='del')

if($op=='move')

}$category = $tree->getchilds();

?>

ASP無限分類資料庫版

asp無限分類資料庫版 const issql 0 定義資料庫型別,1為sql server,0為access function openconn conn 開啟資料庫連線 dim connstr if issql 1 then 如果是sql server資料庫 sql server資料庫連線引數 ...

PHP單次資料庫查詢實現無限級分類

這裡使用一張簡單的地區表舉例,表字段如下 使用sql select id,parentid,name from area 查詢得出的資料形如 array 3362 1 array 3 2 array 3 3 array 3 4 array 3 使用函式xmsb getdatatree desc xm...

資料庫無限分級(分類表)

在資料庫中我們經常會做這樣一件事 建立了乙個分類表,再建立乙個子分類,有多少級我們就習慣建立多少張表。這樣不僅耗費大量時間而且還會在操作表的時候陷入混亂,這裡我介紹一種辦法 無限分級。通過這種方式,我們僅需要建立一張表就能將不管多少級分類全部放入。首先我們理清一下思想,在這張表中我們要有個編號 id...