




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PHP實(shí)現(xiàn)無限分類的實(shí)現(xiàn)方法
無限級分類是一種設(shè)計(jì)技巧,在開發(fā)中經(jīng)常使用,本篇文章主要介紹PHP實(shí)現(xiàn)
無限分類的實(shí)現(xiàn)方法,有需要的可以了解一下。
無限級分類是一種設(shè)計(jì)技巧,在開發(fā)中經(jīng)常使用,例如:網(wǎng)站目錄、部門結(jié)構(gòu)、
文章分類。筆者覺得它在對千設(shè)計(jì)表的層級結(jié)構(gòu)上面發(fā)揮很大的作用,比如大家
在一些平臺上面,填寫邀請人,它就是一種上下級的關(guān)系,上級會有多個(gè)下級,
下級又會有自己的分支,大多數(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頂級父id設(shè)為0建立族譜樹;每一個(gè)分類都需記錄它的
父級id。(pid=o代表頂級)
idpidcate八aW\ecateor-der-cr-eatetiW\eC主鍵id,父id,分類八aW\e,
分類排序,創(chuàng)建時(shí)間)
舉例:網(wǎng)站的分類目錄結(jié)構(gòu);餐飲的分類結(jié)構(gòu);評論的結(jié)構(gòu)
2、全路徑無限分類(以一個(gè)字段將所有父級id按順序記錄下來)
idpatl-lcateVtaW\ecateoY-dey-cY-eatetiW\e(主鍵枕逗號分隔的順序排列
父id,分類VtaW\e,分類排序,創(chuàng)建時(shí)間)
優(yōu)缺點(diǎn):
全路徑查詢方便;增加,移動(dòng)分類時(shí)數(shù)據(jù)維護(hù)稍顯復(fù)雜;
二、舉例實(shí)現(xiàn)(網(wǎng)站目錄):
分類表:
飛父級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#父級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父級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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城鄉(xiāng)結(jié)合部出租房屋合同定金范本
- 房產(chǎn)交易三方合同托管實(shí)施細(xì)則
- 保密條款合同模板:代理合作中的商業(yè)與技術(shù)秘密
- 廣告撲克牌批量生產(chǎn)合同
- 貸款擔(dān)保合同協(xié)議
- 河南標(biāo)準(zhǔn)個(gè)人借款合同樣本規(guī)范
- 度商業(yè)合同范本:經(jīng)濟(jì)適用房交易
- 股權(quán)轉(zhuǎn)讓合同范本(標(biāo)準(zhǔn)文本)
- 采購供應(yīng)合同書其二
- 與營銷策略的區(qū)別與應(yīng)用考核試卷
- 2025年江蘇南京技師學(xué)院招聘工作人員19人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 華東師大版七年級數(shù)學(xué)下冊“第1周周考”
- DBJ50-T-385-2023半柔性復(fù)合路面技術(shù)標(biāo)準(zhǔn)
- 職業(yè)院校教師人工智能素養(yǎng):內(nèi)涵流變、框架構(gòu)建與生成路徑
- 如何在初中數(shù)學(xué)教學(xué)中提升學(xué)生的核心素養(yǎng)
- (完整版)小學(xué)一年級數(shù)學(xué)20以內(nèi)進(jìn)退位加減法(1600道題)計(jì)算卡
- 2025年包頭鐵道職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 北京2024年北京市測繪設(shè)計(jì)研究院面向應(yīng)屆生招聘筆試歷年參考題庫附帶答案詳解
- 2025年減速機(jī)齒輪項(xiàng)目投資可行性研究分析報(bào)告
- 走進(jìn)李白校本 課程設(shè)計(jì)
- 2025新人教版英語七年級下單詞默寫單(小學(xué)部分)
評論
0/150
提交評論