国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php教程 php手冊 自己前幾天寫的無限分類類

自己前幾天寫的無限分類類

Jun 13, 2016 pm 12:34 PM
http 主要 使用 思想 效果 無限 自己

前一周寫的吧,使用中效果還不錯(cuò)。

?主要思想來自:http://www.phpobject.net/b...[url=http://www.phpobject.net/blog/read.php?49][/url]

? 這里就不多解釋原理了,直接發(fā)代碼。

? PS:這里代碼是不能直接使用的,必須結(jié)合我的一些其他庫類。應(yīng)該說思想才是最重要的,這里主要提供一種分類的思路。

復(fù)制代碼 代碼如下:


?
/**?
--??
--?表的結(jié)構(gòu)?`daxue8_category`?
--??

CREATE?TABLE?`daxue8_category`?(?
??`cid`?smallint(6)?NOT?NULL?auto_increment,?
??`pid`?smallint(6)?NOT?NULL?default?'0',?
??`level`?smallint(6)?NOT?NULL?default?'0',?
??`cname`?char(64)?NOT?NULL?default?'',?
??`lft`?smallint(6)?NOT?NULL?default?'0',?
??`rgt`?smallint(6)?NOT?NULL?default?'0',?
??`uid`?mediumint(8)?NOT?NULL?default?'0',?
??`username`?char(32)?NOT?NULL?default?'',?
??`ctime`?int(10)?NOT?NULL?default?'0',?
??`cstate`?tinyint(1)?NOT?NULL?default?'0',?
??`gnum`?mediumint(8)?NOT?NULL?default?'0',?
??`orderstyle`?smallint(3)?NOT?NULL?default?'0',?
??PRIMARY?KEY??(`cid`)?
)?TYPE=MyISAM?AUTO_INCREMENT=2?;?

--??
--?導(dǎo)出表中的數(shù)據(jù)?`daxue8_category`?
--??

INSERT?INTO?`daxue8_category`?VALUES?(1,?0,?1,?'root',?1,?2,?0,?'管理員',?1163608814,?1,?0,?0);?
*/?
class?category?
{?
????var?$module;?

????var?$tbname;?

????function?category()?
????{?
????????$this->tbname=TB_PREX.'_category';?
????????$this->module=new?module($this->tbname);?
????}?

????/**?
??????*?增加子節(jié)點(diǎn)?
??????*?@param?array?$node?待增加子節(jié)點(diǎn)的屬性?
??????*?@param?int?$pid?父節(jié)點(diǎn)的ID?
????*/?
????function?add($node,$pid){?
????????//檢查是否已經(jīng)存在該節(jié)點(diǎn)?
????????if($node_exist=$this->module->detail('where?pid='.$pid.'?and?cname=\''.$node['cname'].'\'')){?
????????????//$this->error(__FUNCTION__.'():該節(jié)點(diǎn)'.$node['cname'].'已經(jīng)存在!');?
????????????//print_r($node_exist);?
????????????return?$node_exist['cid'];?
????????}?
????????//獲取父節(jié)點(diǎn)信息?
????????$pnode=$this->get_by_cid($pid);?
????????//更新其他節(jié)點(diǎn)?
????????$this->module->query('update?`'.$this->tbname.'`?set?lft=lft+2?where?lft>'.$pnode['rgt']);?
????????$this->module->query('update?`'.$this->tbname.'`?set?rgt=rgt+2?where?rgt>='.$pnode['rgt']);?
????????//插入新節(jié)點(diǎn)?
????????$node['pid']=$pid;?
????????$node['lft']=$pnode['rgt'];?
????????$node['rgt']=$pnode['rgt']+1;?
????????$node['level']=$pnode['level']+1;//層次加一?
????????return?$this->module->add($node);?
????}?

????/**?
??????*?刪除節(jié)點(diǎn)?
??????*?@param?$cid?待刪除的節(jié)點(diǎn)的ID?
??????*?@param?$delete_childern?如果該節(jié)點(diǎn)存在子節(jié)點(diǎn),是否強(qiáng)制刪除。設(shè)置未true,則當(dāng)存在子節(jié)點(diǎn)的時(shí)候,刪除失敗,返回false?
??????*?
????*/?
????function?delete($cid,$delete_childern=false)?
????{?
????????//獲取節(jié)點(diǎn)信息?
????????$node=$this->get_by_cid($cid);?
????????if(($this->child_num($node)>0)&&(!$delete_childern))$this->error(__FUNCTION__.'():該節(jié)點(diǎn)存在子節(jié)點(diǎn)!');?
????????//刪除該節(jié)點(diǎn)及其所有子節(jié)點(diǎn)?
????????$this->module->delete('where?lft?between?'.$node['lft'].'?and?'.$node['rgt']);?
????????//修改相應(yīng)的左右鍵值?
????????$plus=$node['rgt']-$node['lft']+1;?
????????$this->module->query('update?`'.$this->tbname.'`?set?lft=lft-'.$plus.'?where?lft>'.$node['rgt']);?
????????$this->module->query('update?`'.$this->tbname.'`?set?rgt=rgt-'.$plus.'?where?rgt>'.$node['rgt']);?
????????return?true;?
????}?

????/**?
??????*?更新一個(gè)節(jié)點(diǎn)?
??????*?@param?array?$set更新集?
??????*?@param?int?$cid?更新的節(jié)點(diǎn)的主鍵ID?
????*/?
????function?update($set,$cid){?
????????return?$this->module->update($set,'where?cid='.$cid);?
????}?

????/**?
??????*?選取節(jié)點(diǎn)及其子節(jié)點(diǎn)?
??????*?@param?int?$cid節(jié)點(diǎn)的主鍵ID?
??????*?@param?int?$deep選取深度?
????*/?
????function?select($cid,$deep=0)?
????{?
????????//獲取節(jié)點(diǎn)信息?
????????$node=$this->get_by_cid($cid);?
????????$where='where?lft?between?'.$node['lft'].'?and?'.$node['rgt'];?
????????if(!empty($deep))$where.='?and?level????????if($deep==1){?
????????????$where.='?order?by?orderstyle?desc';?
????????}else{?
????????????$where.='?order?by?lft?asc';?????????????
????????}?
????????return?$this->module->select($where);?
????}?

????/**?
??????*?獲取父節(jié)點(diǎn)路徑?
??????*?@param?int?$cid?節(jié)點(diǎn)的ID??
????*/?
????function?get_parent($cid)?
????{?
????????$node=$this->get_by_cid($cid);?
????????return?$this->module->select('where?lft='.$node['rgt'].'?order?by?lft?asc');?
????}?
????/**?
??????*?選取子節(jié)點(diǎn)?
??????*?@param?int?$cid節(jié)點(diǎn)的主鍵ID?
??????*?@param?int?$deep選取深度?
????*/?
????function?get_children($pid,$deep=0){?
????????//獲取節(jié)點(diǎn)信息?
????????$pnode=$this->get_by_cid($pid);?
????????$where='where?lft>'.$pnode['lft'].'?and?rgt????????if(!empty($deep))$where.='?and?level????????if($deep==1){?
????????????$where.='?order?by?orderstyle?desc';?
????????}else{?
????????????$where.='?order?by?lft?asc';?????????????
????????}?
????????return?$this->module->select($where);?
????}?

????/**?
??????*?獲取第deep層子節(jié)點(diǎn)?
??????*?@param?int?$cid節(jié)點(diǎn)的主鍵ID?
??????*?@param?int?$deep選取深度?
????*/?
????function?get_level_children($pid,$deep){?
????????//獲取節(jié)點(diǎn)信息?
????????$pnode=$this->get_by_cid($pid);?
????????$where='where?lft>'.$pnode['lft'].'?and?rgt????????$where.='?and?level='.($pnode['level']+$deep);?
????????$where.='?order?by?orderstyle?desc';?
????????return?$this->module->select($where);?
????}?

????/**?
??????*?獲取節(jié)點(diǎn)信息?
??????*?@param?$cid?節(jié)點(diǎn)的主鍵ID?
??????*?@return?array?$node?
????*/?
????function?get_by_cid($cid){?
????????$node=$this->module->detail('where?cid='.$cid);?
????????if(!$node)$this->error(__FUNCTION__.'():獲取節(jié)點(diǎn)'.$cid.'失?。?);?
????????return?$node;?
????}?
????/**?
??????*?獲取子節(jié)點(diǎn)的數(shù)目?
??????*?@param?array?$node?節(jié)點(diǎn)信息?
??????*?@return?num?
????*/?
????function?child_num($node){?
????????return?($node['rgt']-$node['lft']-1)/2;?
????}?
????/**?
??????*?按照層次顯示分類?
??????*?@param?int?$cid節(jié)點(diǎn)的主鍵ID?
??????*?@output?
????*/?
????function?display($cid)?
????{?
????????$nodes=$this->select($cid);?
????????foreach($nodes?as?$node){?
????????????echo?str_repeat('???',$node['level']-1).$node['cname']."\n";?
????????}?
????}?
/*-------private-----------------------------------*/?

????function?error($msg){?
????????die('ERROR?:?file?'.__FILE__.'?function?'.$msg);?
????}?
}?
?>?

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

用戶遭遇罕見故障 三星 Watch 智能手表突現(xiàn)白屏問題 用戶遭遇罕見故障 三星 Watch 智能手表突現(xiàn)白屏問題 Apr 03, 2024 am 08:13 AM

你可能遇到過智能手機(jī)屏幕出現(xiàn)綠色線條的問題,即使沒見過,也一定在網(wǎng)絡(luò)上看到過相關(guān)圖片。那么,智能手表屏幕變白的情況你遇見過嗎?4月2日,CNMO從外媒了解到,一名Reddit用戶在社交平臺(tái)上分享了一張圖片,展示了三星Watch系列智能手表屏幕變白的情況。該用戶寫道:"我離開時(shí)正在充電,回來時(shí)就這樣了,我嘗試重啟,但重啟過程中屏幕還是這樣。"三星Watch智能手表屏幕變白這位Reddit用戶并未指明這款智能手表的具體型號。不過,從圖片上看,應(yīng)該是三星Watch5。此前,另一位Reddit用戶也報(bào)告

foobar2000怎么下載?-foobar2000怎么使用 foobar2000怎么下載?-foobar2000怎么使用 Mar 18, 2024 am 10:58 AM

foobar2000是一款能隨時(shí)收聽音樂資源的軟件,各種音樂無損音質(zhì)帶給你,增強(qiáng)版本的音樂播放器,讓你得到更全更舒適的音樂體驗(yàn),它的設(shè)計(jì)理念是將電腦端的高級音頻播放器移植到手機(jī)上,提供更加便捷高效的音樂播放體驗(yàn),界面設(shè)計(jì)簡潔明了易于使用它采用了極簡的設(shè)計(jì)風(fēng)格,沒有過多的裝飾和繁瑣的操作能夠快速上手,同時(shí)還支持多種皮膚和主題,根據(jù)自己的喜好進(jìn)行個(gè)性化設(shè)置,打造專屬的音樂播放器支持多種音頻格式的播放,它還支持音頻增益功能根據(jù)自己的聽力情況調(diào)整音量大小,避免過大的音量對聽力造成損害。接下來就讓小編為大

crystaldiskmark是什么軟件?-crystaldiskmark如何使用? crystaldiskmark是什么軟件?-crystaldiskmark如何使用? Mar 18, 2024 pm 02:58 PM

CrystalDiskMark是一款適用于硬盤的小型HDD基準(zhǔn)測試工具,可以快速測量順序和隨機(jī)讀/寫速度。接下來就讓小編為大家介紹一下CrystalDiskMark,以及crystaldiskmark如何使用吧~一、CrystalDiskMark介紹CrystalDiskMark是一款廣泛使用的磁盤性能測試工具,用于評估機(jī)械硬盤和固態(tài)硬盤(SSD)的讀寫速度和隨機(jī)I/O性能。它是一款免費(fèi)的Windows應(yīng)用程序,并提供用戶友好的界面和各種測試模式來評估硬盤驅(qū)動(dòng)器性能的不同方面,并被廣泛用于硬件評

BTCC教學(xué):如何在BTCC交易所綁定使用MetaMask錢包? BTCC教學(xué):如何在BTCC交易所綁定使用MetaMask錢包? Apr 26, 2024 am 09:40 AM

MetaMask(中文也叫小狐貍錢包)是一款免費(fèi)的、廣受好評的加密錢包軟件。目前,BTCC已支持綁定MetaMask錢包,綁定后可使用MetaMask錢包進(jìn)行快速登入,儲(chǔ)值、買幣等,且首次綁定還可獲得20USDT體驗(yàn)金。在BTCCMetaMask錢包教學(xué)中,我們將詳細(xì)介紹如何注冊和使用MetaMask,以及如何在BTCC綁定并使用小狐貍錢包。MetaMask錢包是什么?MetaMask小狐貍錢包擁有超過3,000萬用戶,是當(dāng)今最受歡迎的加密貨幣錢包之一。它可免費(fèi)??使用,可作為擴(kuò)充功能安裝在網(wǎng)絡(luò)

百度網(wǎng)盤app怎么用 百度網(wǎng)盤app怎么用 Mar 27, 2024 pm 06:46 PM

在如今云存儲(chǔ)已經(jīng)成為我們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡囊徊糠帧0俣染W(wǎng)盤作為國內(nèi)領(lǐng)先的云存儲(chǔ)服務(wù)之一,憑借其強(qiáng)大的存儲(chǔ)功能、高效的傳輸速度以及便捷的操作體驗(yàn),贏得了廣大用戶的青睞。而且無論你是想要備份重要文件、分享資料,還是在線觀看視頻、聽取音樂,百度網(wǎng)盤都能滿足你的需求。但是很多用戶們可能對百度網(wǎng)盤app的具體使用方法還不了解,那么這篇教程就將為大家詳細(xì)介紹百度網(wǎng)盤app如何使用,還有疑惑的用戶們就快來跟著本文詳細(xì)了解一下吧!百度云網(wǎng)盤怎么用:一、安裝首先,下載并安裝百度云軟件時(shí),請選擇自定義安裝選

九州風(fēng)神阿薩辛 4S 散熱器評測 風(fēng)冷'刺客大師”范兒 九州風(fēng)神阿薩辛 4S 散熱器評測 風(fēng)冷'刺客大師”范兒 Mar 28, 2024 am 11:11 AM

說起阿薩辛ASSASSIN,相信玩家們一定會(huì)想到《刺客信條》中的各位刺客大師,不僅身手了得,而且"躬身于黑暗、服務(wù)于光明"的信條,與國內(nèi)知名機(jī)箱/電源/散熱器品牌九州風(fēng)神(DeepCool)旗下的阿薩辛ASSASSIN系列旗艦級風(fēng)冷散熱器不謀而合。最近,該系列的最新產(chǎn)品阿薩辛ASSASSIN4S重磅上線,"西裝刺客,再進(jìn)階"為高級玩家?guī)砣碌娘L(fēng)冷散熱體驗(yàn)。外觀一覽細(xì)節(jié)滿滿阿薩辛4S散熱器采用雙塔構(gòu)造+單風(fēng)扇內(nèi)嵌設(shè)計(jì),外面包覆立方體造型的整流罩,整體感極強(qiáng),并提供白、黑兩種配色可選,滿足不同色系

網(wǎng)易郵箱大師怎么用 網(wǎng)易郵箱大師怎么用 Mar 27, 2024 pm 05:32 PM

網(wǎng)易郵箱,作為中國網(wǎng)民廣泛使用的一種電子郵箱,一直以來以其穩(wěn)定、高效的服務(wù)贏得了用戶的信賴。而網(wǎng)易郵箱大師,則是專為手機(jī)用戶打造的郵箱軟件,它極大地簡化了郵件的收發(fā)流程,讓我們的郵件處理變得更加便捷。那么網(wǎng)易郵箱大師該如何使用,具體又有哪些功能呢,下文中本站小編將為大家?guī)碓敿?xì)的內(nèi)容介紹,希望能幫助到大家!首先,您可以在手機(jī)應(yīng)用商店搜索并下載網(wǎng)易郵箱大師應(yīng)用。在應(yīng)用寶或百度手機(jī)助手中搜索“網(wǎng)易郵箱大師”,然后按照提示進(jìn)行安裝即可。下載安裝完成后,我們打開網(wǎng)易郵箱賬號并進(jìn)行登錄,登錄界面如下圖所示

航嘉 MX750P 全模組電源評測:750W 的白金實(shí)力濃縮 航嘉 MX750P 全模組電源評測:750W 的白金實(shí)力濃縮 Mar 28, 2024 pm 03:20 PM

ITX平臺(tái)以小巧的身形吸引了不少追求極致和獨(dú)特美感的玩家,隨著制程的提升和技術(shù)的進(jìn)步,英特爾第14代酷睿和RTX40系顯卡都可以在ITX平臺(tái)中發(fā)揮實(shí)力,游戲玩家也對SFX電源有了更高的要求。游戲愛好者航嘉推出新的MX系列電源,在滿足高性能需求的ITX平臺(tái)中,MX750P全模組電源的定額功率高達(dá)750W,同時(shí)通過了80PLUS白金級認(rèn)證。以下我們就帶來這款電源的評測。航嘉MX750P全模組電源采用了簡約時(shí)尚的設(shè)計(jì)理念,共有黑白兩款供玩家選擇,均采用磨砂表面處理,搭配銀灰色和紅色的字體有很好的質(zhì)感,

See all articles