欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學堂PHP培訓之實現(xiàn)無限分類方法詳解

2017-12-27 11:02:01 1454瀏覽

今天扣丁學堂給大家介紹一下關于介紹PHP實現(xiàn)無限分類的實現(xiàn)方法,首先無限級分類是一種設計技巧,在開發(fā)中經(jīng)常使用,下面我們一起來看一下吧。



無限級分類是一種設計技巧,在開發(fā)中經(jīng)常使用,例如:網(wǎng)站目錄、部門結構、文章分類。筆者覺得它在對于設計表的層級結構上面發(fā)揮很大的作用,比如大家在一些平臺上面,填寫邀請人,它就是一種上下級的關系,上級會有多個下級,下級又會有自己的分支,大多數(shù)都是利用遞歸的思想去實現(xiàn)。

遞歸(程序調用自身的編程技巧):

1、$_GLOBALS[result]

2、static$result

3、參數(shù)引用&

舉例:遍歷1-10

$i=0;

functiondeeploop($i){

global$i;

$i++;

echo$i;

if($i<10){

deeploop($i);

}

}

functiondeeploop(){

static$i=0;

$i++;

echo$i;

if($i<10){

deeploop($i);

}

}

functiondeeploop(&$i=0){

$i++;

echo$i;

if($i<10){

deeploop($i);

}

}

一、無限分類實現(xiàn):

1、表設計設置父id頂級父id設為0建立族譜樹;每一個分類都需記錄它的父級id。(pid=0代表頂級)

idpidcatenamecateordercreatetime(主鍵id,父id,分類name,分類排序,創(chuàng)建時間)

舉例:網(wǎng)站的分類目錄結構;餐飲的分類結構;評論的結構

2、全路徑無限分類(以一個字段將所有父級id按順序記錄下來)

idpathcatenamecateordercreatetime(主鍵id,逗號分隔的順序排列父id,分類name,分類排序,創(chuàng)建時間)

優(yōu)缺點:

全路徑查詢方便;增加,移動分類時數(shù)據(jù)維護稍顯復雜;

二、舉例實現(xiàn)(網(wǎng)站目錄):

分類表:

#父級Id遞歸法

CREATETABLE`deepcate`(

`id`int(11)NOTNULLAUTO_INCREMENTPRIMARYKEY,

`pid`int(11)NOTNULLDEFAULT0,

`catename`char(25)NOTNULL,

`cateorder`int(6),

`createtime`date

)ENGINE=INNODBdefaultCHARSET=utf8;

//數(shù)據(jù)

INSERTINTO`deepcate`VALUES(1,0,'圖片',null,'2016-11-01'),

(2,1,'美女',null,'2016-11-01'),

(3,1,'新聞',null,'2016-11-01'),

(4,2,'足球寶貝',null,'2016-11-01'),

(5,2,'日韓明星',null,'2016-11-01'),

(6,5,'美女寫真',null,'2016-11-01');

#全路徑

CREATETABLE`qljcate`(

`id`int(11)NOTNULL,

`path`char(255),

`catename`char(25)NOTNULL,

`cateorder`int(6),

`createtime`date

)ENGINE=INNODBdefaultCHARSET=utf8;

INSERTINTO`qljcate`VALUES(1,null,'圖片',null,'2016-11-01'),

(2,1,'美女圖片',null,'2016-11-01'),

(3,1,2,'足球寶貝',null,'2016-11-01'),

(4,1,2,'日韓明星',null,'2016-11-01'),

(5,1,2,4,'美女寫真',null,'2016-11-01');

獲取圖片所在的目錄路徑:

#父級Id遞歸法

CREATETABLE`deepcate`(

`id`int(11)NOTNULLAUTO_INCREMENTPRIMARYKEY,

`pid`int(11)NOTNULLDEFAULT0,

`catename`char(25)NOTNULL,

`cateorder`int(6),

`createtime`date

)ENGINE=INNODBdefaultCHARSET=utf8;

//數(shù)據(jù)

INSERTINTO`deepcate`VALUES(1,0,'圖片',null,'2016-11-01'),

(2,1,'美女',null,'2016-11-01'),

(3,1,'新聞',null,'2016-11-01'),

(4,2,'足球寶貝',null,'2016-11-01'),

(5,2,'日韓明星',null,'2016-11-01'),

(6,5,'美女寫真',null,'2016-11-01');

#全路徑

CREATETABLE`qljcate`(

`id`int(11)NOTNULL,

`path`char(255),

`catename`char(25)NOTNULL,

`cateorder`int(6),

`createtime`date

)ENGINE=INNODBdefaultCHARSET=utf8;

INSERTINTO`qljcate`VALUES(1,null,'圖片',null,'2016-11-01'),

(2,1,'美女圖片',null,'2016-11-01'),

(3,1,2,'足球寶貝',null,'2016-11-01'),

(4,1,2,'日韓明星',null,'2016-11-01'),

(5,1,2,4,'美女寫真',null,'2016-11-01');

*注意點:

移動分類不能移到自己及其子類下面;刪除分類(只能刪除最底層的分類,及不含子類的分類;換言之,只能從最底層刪起).

思考圖片類型下所有的圖片分類?

#pid父級id實現(xiàn)法

functionGetAllcate($id,&$result=array()){

$sql="SELECT*FROMdeepcateWHEREpidin({$id})";

$query=mysql_query($sql);

$row=mysql_fetch_assoc($query);

if(mysql_num_rows($row)>0)

{

$idlist=array();

while($row){

$result[]=$row;

$idlist[]=$row['id'];

}

$id=implode(',',$idlist);

GetAllcate($id,$result);

}

$result=array_unique($result);

return$result;

}

此類方法比較適用于查詢所在父分類下所有的書籍、文章,全路徑可以直接獲取,就不再此提出了。實際操作中,我們可以根據(jù)實際情況設計合理的表結構。

以上就是關于扣丁學堂PHP培訓之實現(xiàn)無限分類實現(xiàn)方法的詳細介紹,最后想要學習PHP開發(fā)技術的小伙伴不要猶豫了,扣丁學堂是PHP培訓技術的最佳選擇,想要PHP視頻教程的小伙伴現(xiàn)在就聯(lián)系我們的咨詢老師領取吧,機會總是留給有準備的人的!扣丁學堂PHP開發(fā)工程師技術交流群:374332265。




扣丁學堂微信公眾號



【關注微信公眾號獲取更多學習資料】



查看更多關于“php培訓資訊的相關文章>>

標簽: PHP培訓 PHP視頻教程 PHP從入門到精通 PHP學習路線圖 PHP開發(fā)工程師

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部