基於php無限分類的深入理解

2022-10-06 13:18:12 字數 1895 閱讀 3188

無限分類是實際開發中經常用到的一種資料結構,一般我們稱之為樹形結構。

題設:類似**的商品分類,可以在任意分類設定其子類。

一、建立`type`資料表

`id` 自增長

`fid` int(11) 預設(0) ,父節點id

`name` varchar(50),分類名稱

複製** **如下:

create table `type` (

`id` int(11) not null auto_increment,

`fi程式設計客棧d` int(11) not null default '0',

`name` varchar(50) not null,

primary key (`id`)

)二、新增

我們先新增幾個頂級分類

複製** **如下:

insert into `type` (`id`, `fid`, `name`) values (null, '0', '手機');

insert into `type` (`id`, `fid`, `name`) values (null, '0', '電腦');

insert into `type` (` `fid`, `name`) values (null, '0', '鞋子');

insert into `type` (`id`, `fid`, `name`) values (null, '0', '衣服'程式設計客棧);

這裡fid=0是代表頂級分類

接著我們為新增幾個個子分類

複製** **如下:

insert into `type` (`id`, `fid`, `name`) values (null, '2', '台式'), (null, '2', '筆記本');

這裡fid=2,2這個id是分類的id,如果是新增的子分類則fid=3

同理我們為新增子分類則fid=6

複製** **如下:

insert into `type` (`id`, `fid`, `name`) values (null, '6', 'ausu'), (null, '6', 'hp');

三、刪除

如果我們想刪除這個分類,很簡單

複製** **如下:

delete from `type` where `id`=6

的子分類我們也要記得做相應的處理

複製** **如下:

function del($fid) ";

mysql_query($sql);

del($rs['id']);//遞迴

}}del(6);//執行操作

這裡你也許你會疑惑為什麼那麼麻煩用遞迴,而不是直接這樣刪除

複製** **如下:

delete from `type` where `fid`=6

這樣我們不就可以直接刪除、?但是假設有乙個子分類,也有乙個子分類,如果不用遞迴我們就無法徹底刪除www.cppcns.com資料。

三、查詢

1.查詢的子分類

複製** **如下:

select * from `type` where `fid`=2

2.查詢的所有子分類

複製** **如下:

function sel($fid)

}sel(2);

四、實際資料應用

在資料表新增乙個字段`tid`,字段值為記錄所屬分類`type`表的id。必須是id不能是name,因為name的值可能會改變。

例如查詢屬於分類的商品

複製** **如下:

select * from `goods` where `tid`=2

注:**沒有執行過可能會有錯誤,但是思路是正確的,主要的是理解樹形結構,而不是記住**。

本文標題: 基於php無限分類的深入理解

本文位址:

深入理解php核心

第二章 使用者 的執行 第三節 zend引擎與指令碼執行 第四節 小結 第三章 變數及資料型別 第二節 常量 第三節 預定義變數 第四節 靜態變數 第五節 型別提示的實現 第六節 變數的生命週期 第七節 資料型別轉換 第八節 小結 第四章 函式的實現 第二節 函式的定義,引數及返回值 第三節 函式的...

深入理解php核心

第二章 使用者 的執行 第三節 zend引擎與指令碼執行 第四節 小結 第三章 變數及資料型別 第二節 常量 第三節 預定義變數 第四節 靜態變數 第五節 型別提示的實現 第六節 變數的生命週期 第七節 資料型別轉換 第八節 小結 第四章 函式的實現 第二節 函式的定義,引數及返回值 第三節 函式的...

PHP深入理解 PHP架構布局

解析為token 將語法轉換為抽象語法樹 將語法樹轉換opcodes scanning parsing compilation excution 執行opcodes 從上圖中看出主要從解析phpcode到執行主要經過了四個階段.獲取token可以通過token get all 函式獲取token資訊...