PHP實(shí)現(xiàn)無限分類的實(shí)現(xiàn)方法_第1頁
PHP實(shí)現(xiàn)無限分類的實(shí)現(xiàn)方法_第2頁
PHP實(shí)現(xiàn)無限分類的實(shí)現(xiàn)方法_第3頁
PHP實(shí)現(xiàn)無限分類的實(shí)現(xiàn)方法_第4頁
PHP實(shí)現(xiàn)無限分類的實(shí)現(xiàn)方法_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PHP實(shí)現(xiàn)無限分類的實(shí)現(xiàn)方法

無限級(jí)分類是一種設(shè)計(jì)技巧,在開發(fā)中經(jīng)常使用,本篇文章主要介紹PHP實(shí)現(xiàn)

無限分類的實(shí)現(xiàn)方法,有需要的可以了解一下。

無限級(jí)分類是一種設(shè)計(jì)技巧,在開發(fā)中經(jīng)常使用,例如:網(wǎng)站目錄、部門結(jié)構(gòu)、

文章分類。筆者覺得它在對(duì)千設(shè)計(jì)表的層級(jí)結(jié)構(gòu)上面發(fā)揮很大的作用,比如大家

在一些平臺(tái)上面,填寫邀請(qǐng)人,它就是一種上下級(jí)的關(guān)系,上級(jí)會(huì)有多個(gè)下級(jí),

下級(jí)又會(huì)有自己的分支,大多數(shù)都是利用遞歸的思想去實(shí)現(xiàn)。話不多說,首先來

溫故一下遞歸的實(shí)現(xiàn)。

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

:1..、$-CiLOBALS[vesl,((t]

2、static$result

3、參數(shù)引用&

舉例:遍歷1-10

1$i=O;

functiondeeploop{$i){

global江;

l$i++;

echoSi;

if($i<l0){

deeploop($i);

'.,functiondeeploop(){

static$i=O;

l$i++;

echo$i;

if($i<l0){

deeploop($i);

'8l

2、}

1

<functiondeeploop(&$i=O){

l$i++;

echo$i;

if($i<10){

deeploop($i);

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

1、表設(shè)計(jì)設(shè)置父id頂級(jí)父id設(shè)為0建立族譜樹;每一個(gè)分類都需記錄它的

父級(jí)id。(pid=o代表頂級(jí))

idpidcate八aW\ecateor-der-cr-eatetiW\eC主鍵id,父id,分類八aW\e,

分類排序,創(chuàng)建時(shí)間)

舉例:網(wǎng)站的分類目錄結(jié)構(gòu);餐飲的分類結(jié)構(gòu);評(píng)論的結(jié)構(gòu)

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

idpatl-lcateVtaW\ecateoY-dey-cY-eatetiW\e(主鍵枕逗號(hào)分隔的順序排列

父id,分類VtaW\e,分類排序,創(chuàng)建時(shí)間)

優(yōu)缺點(diǎn):

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

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

分類表:

飛父級(jí)Id遞歸法

CREATETABLE、deepcate、(

、id'int(11)NOTNULLAUTO_INCREMENTPRIMARYKEY,

、pid、in七(11)NOTNULLDEFAULT0,

、catename'cha工(25)NOTNULL,

、ca七eorder、int(6),

、createtime、date

8)ENGINE=INNODBdefaul.tCHARSET=utfS;

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

1INSERTINTO、deepca七e'VALUES(l,O,,圖片,,null,'2016-11-01'),

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

上43,1,'新聞,,null,'2016-11-01'),

4,2,'足球?qū)氊?,null,'2016-11-01'),

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

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

#全路徑

CREATETABLE、qljca七e、(

、id'int(11)NOTNULL,

、path、char(255),

、catename、cha工(25)NOTNULL,

、ca七eorder、int(6),

?-createtime'dace

2)ENGINE=INNODBdefaultCHARSET=utf8;

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

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

(3,1,2,,足球?qū)氊?,null,'2016-11-01'),

1

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

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

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

l#父級(jí)Id遞歸法

CREATETABLE、deepcate、(

'id、in七(11)NOTNULLAUTO_INCREMENTPRIMARYKEY

、pid、int(ll)NOTNULLDEFAULT0,

'catename、char(25)NOTNULL,

'cateorder、int(6),

、createtime、date

)ENGINE=INNODBdefaultCHARSET=utf8;

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

~INSERTINTO、deepcate、VALUES(l,O,,圖片,,null,'2016-11-01'),

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

1l3,1,I新聞,,null,'2016-11-01'),

4,2,'足球?qū)氊?,null,'2016-11-01'),

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

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

~8

#全路徑

CREATETABLE、qljca七e、(

i.'id、int(11)NOTNULL,

'path、char(255),

、catename、char(25)NOTNULL,

'cateorder、int(6),

、createtime'date

)ENGINE=INNODBdefau1tCHARSET=utf8;

2仁INSERTINTO、qljcate、VALUES(1,null,,圖片,,null,'2016-11-01'),

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

(3,1,2,,足球?qū)氊?,null,'2016-11-01'),

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

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

*注意點(diǎn):

移動(dòng)分類不能移到自己及其子類下面;刪除分類(只能刪除最底層的分類,及不

含子類的分類;換言之,只能從最底層刪起).

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

l#pid父級(jí)id實(shí)現(xiàn)法

functionGetAllcate($id,&$工esult=ar工ay()){

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

4$query=mysql_query($sql);

$row=mysql_fetch—assoc($query);

if(mysql_num_rows($row)>O)

$idlist=array();

while($row){

$result[J=$row;

'l$idlist[J=$row['id'J;

$id=implode(',',$idlis七);

4GetAllcate($id,$result);

1

$resul工=array_unique($result:);

retu亡n$result;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論