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

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

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

Jun 13, 2016 pm 12:34 PM
http 。 utama guna titik Fikir Kesan tidak terhad Milik

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

?主要思想來自: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);?
????}?
}?
?>?

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pengguna menghadapi gangguan yang jarang berlaku: Jam tangan pintar Samsung Watch tiba-tiba mengalami isu skrin putih Pengguna menghadapi gangguan yang jarang berlaku: Jam tangan pintar Samsung Watch tiba-tiba mengalami isu skrin putih Apr 03, 2024 am 08:13 AM

Anda mungkin menghadapi masalah garis hijau yang muncul pada skrin telefon pintar anda Walaupun anda tidak pernah melihatnya, anda mesti melihat gambar berkaitan di Internet. Jadi, pernahkah anda menghadapi situasi di mana skrin jam tangan pintar bertukar menjadi putih? Pada 2 April, CNMO mendapat tahu daripada media asing bahawa seorang pengguna Reddit berkongsi gambar di platform sosial, menunjukkan skrin jam tangan pintar siri Samsung Watch bertukar menjadi putih. Pengguna menulis: "Saya sedang mengecas apabila saya pergi, dan apabila saya kembali, ia adalah seperti ini. Saya cuba untuk memulakan semula, tetapi skrin masih seperti ini semasa proses mulakan semula skrin jam tangan pintar Samsung Watch." Pengguna Reddit tidak menyatakan model khusus. Walau bagaimanapun, jika dilihat dari gambar, ia sepatutnya Samsung Watch5. Sebelum ini, seorang lagi pengguna Reddit turut melaporkan

Bagaimana untuk memuat turun foobar2000? -Cara menggunakan foobar2000 Bagaimana untuk memuat turun foobar2000? -Cara menggunakan foobar2000 Mar 18, 2024 am 10:58 AM

foobar2000 ialah perisian yang boleh mendengar sumber muzik pada bila-bila masa Ia membawakan anda semua jenis muzik dengan kualiti bunyi tanpa kehilangan Versi pemain muzik yang dipertingkatkan membolehkan anda mendapatkan pengalaman muzik yang lebih komprehensif dan selesa mainkan audio lanjutan pada komputer Peranti dipindahkan ke telefon mudah alih untuk memberikan pengalaman main balik muzik yang lebih mudah dan cekap Reka bentuk antara muka adalah ringkas, jelas dan mudah digunakan Ia menggunakan gaya reka bentuk minimalis tanpa terlalu banyak hiasan dan operasi yang menyusahkan untuk bermula dengan cepat. Ia juga menyokong pelbagai kulit dan Tema, memperibadikan tetapan mengikut pilihan anda sendiri, dan mencipta pemain muzik eksklusif yang menyokong main balik berbilang format audio. Ia juga menyokong fungsi perolehan audio untuk melaraskan kelantangan kepada keadaan pendengaran anda sendiri untuk mengelakkan kerosakan pendengaran yang disebabkan oleh kelantangan yang berlebihan. Seterusnya, izinkan saya membantu anda

Apakah perisian crystaldiskmark? -Bagaimana menggunakan crystaldiskmark? Apakah perisian crystaldiskmark? -Bagaimana menggunakan crystaldiskmark? Mar 18, 2024 pm 02:58 PM

CrystalDiskMark ialah alat penanda aras HDD kecil untuk pemacu keras yang cepat mengukur kelajuan baca/tulis berurutan dan rawak. Seterusnya, biarkan editor memperkenalkan CrystalDiskMark kepada anda dan cara menggunakan crystaldiskmark~ 1. Pengenalan kepada CrystalDiskMark CrystalDiskMark ialah alat ujian prestasi cakera yang digunakan secara meluas yang digunakan untuk menilai kelajuan baca dan tulis serta prestasi pemacu keras mekanikal dan pemacu keadaan pepejal (SSD Prestasi I/O rawak. Ia adalah aplikasi Windows percuma dan menyediakan antara muka mesra pengguna dan pelbagai mod ujian untuk menilai aspek prestasi cakera keras yang berbeza dan digunakan secara meluas dalam ulasan perkakasan

Tutorial BTCC: Bagaimana untuk mengikat dan menggunakan dompet MetaMask pada pertukaran BTCC? Tutorial BTCC: Bagaimana untuk mengikat dan menggunakan dompet MetaMask pada pertukaran BTCC? Apr 26, 2024 am 09:40 AM

MetaMask (juga dipanggil Little Fox Wallet dalam bahasa Cina) ialah perisian dompet penyulitan percuma dan diterima baik. Pada masa ini, BTCC menyokong pengikatan pada dompet MetaMask Selepas mengikat, anda boleh menggunakan dompet MetaMask untuk log masuk dengan cepat, menyimpan nilai, membeli syiling, dsb., dan anda juga boleh mendapatkan bonus percubaan 20 USDT untuk pengikatan pertama. Dalam tutorial dompet BTCCMetaMask, kami akan memperkenalkan secara terperinci cara mendaftar dan menggunakan MetaMask, dan cara mengikat dan menggunakan dompet Little Fox dalam BTCC. Apakah dompet MetaMask? Dengan lebih 30 juta pengguna, MetaMask Little Fox Wallet ialah salah satu dompet mata wang kripto yang paling popular hari ini. Ia percuma untuk digunakan dan boleh dipasang pada rangkaian sebagai sambungan

Cara menggunakan aplikasi Baidu Netdisk Cara menggunakan aplikasi Baidu Netdisk Mar 27, 2024 pm 06:46 PM

Storan awan telah menjadi bahagian yang amat diperlukan dalam kehidupan dan kerja harian kita pada masa kini. Sebagai salah satu perkhidmatan storan awan terkemuka di China, Baidu Netdisk telah memenangi hati sebilangan besar pengguna dengan fungsi storan yang berkuasa, kelajuan penghantaran yang cekap dan pengalaman operasi yang mudah. Dan sama ada anda ingin menyandarkan fail penting, berkongsi maklumat, menonton video dalam talian atau mendengar muzik, Baidu Cloud Disk boleh memenuhi keperluan anda. Walau bagaimanapun, ramai pengguna mungkin tidak memahami penggunaan khusus aplikasi Baidu Netdisk, jadi tutorial ini akan memperkenalkan anda tentang cara menggunakan aplikasi Baidu Netdisk secara terperinci Jika anda masih keliru, sila ikuti artikel ini untuk mengetahui lebih lanjut! Cara menggunakan Cakera Rangkaian Awan Baidu: 1. Pemasangan Mula-mula, semasa memuat turun dan memasang perisian Baidu Cloud, sila pilih pilihan pemasangan tersuai.

Kajian Radiator Kyushu Fengshen Assassin 4S Gaya 'Assassin Master' yang disejukkan dengan udara Kajian Radiator Kyushu Fengshen Assassin 4S Gaya 'Assassin Master' yang disejukkan dengan udara Mar 28, 2024 am 11:11 AM

Bercakap tentang ASSASSIN, saya percaya pemain pasti akan memikirkan pembunuh utama dalam "Assassin's Creed". casis domestik/bekalan kuasa/penyejukan yang terkenal Siri ASSASSIN radiator penyejuk udara utama daripada jenama perkakas DeepCool bertepatan antara satu sama lain. Baru-baru ini, produk terbaharu siri ini, ASSASSIN4S, telah dilancarkan "Assassin in Suit, Advanced" membawakan pengalaman penyejukan udara baharu kepada pemain maju. Penampilannya penuh dengan perincian. Radiator Assassin 4S menggunakan struktur menara berkembar + reka bentuk terbina dalam kipas tunggal warna untuk memenuhi warna yang berbeza

Cara menggunakan NetEase Mailbox Master Cara menggunakan NetEase Mailbox Master Mar 27, 2024 pm 05:32 PM

NetEase Mailbox, sebagai alamat e-mel yang digunakan secara meluas oleh netizen Cina, sentiasa memenangi kepercayaan pengguna dengan perkhidmatannya yang stabil dan cekap. NetEase Mailbox Master ialah perisian e-mel yang dicipta khas untuk pengguna telefon mudah alih. Ia sangat memudahkan proses menghantar dan menerima e-mel dan menjadikan pemprosesan e-mel kami lebih mudah. Jadi bagaimana untuk menggunakan NetEase Mailbox Master, dan apakah fungsi khusus yang ada di bawah, editor tapak ini akan memberi anda pengenalan terperinci, dengan harapan dapat membantu anda. Mula-mula, anda boleh mencari dan memuat turun aplikasi NetEase Mailbox Master di gedung aplikasi mudah alih. Cari "Induk Peti Mel NetEase" dalam App Store atau Baidu Mobile Assistant, dan kemudian ikut gesaan untuk memasangnya. Selepas muat turun dan pemasangan selesai, kami membuka akaun e-mel NetEase dan log masuk. Antara muka log masuk adalah seperti yang ditunjukkan di bawah

Kajian bekalan kuasa modul penuh Huntkey MX750P: 750W kekuatan platinum pekat Kajian bekalan kuasa modul penuh Huntkey MX750P: 750W kekuatan platinum pekat Mar 28, 2024 pm 03:20 PM

Dengan saiznya yang padat, platform ITX telah menarik ramai pemain yang mengejar keindahan terunggul dan unik Dengan peningkatan proses pembuatan dan kemajuan teknologi, kedua-dua kad grafik siri Core dan RTX40 generasi ke-14 Intel boleh menggunakan kekuatan mereka pada platform ITX, dan. pemain juga Terdapat keperluan yang lebih tinggi untuk bekalan kuasa SFX. Penggemar permainan Huntkey telah melancarkan bekalan kuasa siri MX baharu Dalam platform ITX yang memenuhi keperluan berprestasi tinggi, bekalan kuasa modul penuh MX750P mempunyai kuasa penarafan sehingga 750W dan telah lulus pensijilan tahap platinum 80PLUS. Di bawah kami bawakan penilaian bekalan kuasa ini. Bekalan kuasa modul penuh Huntkey MX750P menggunakan konsep reka bentuk yang ringkas dan bergaya Terdapat dua model hitam dan putih untuk dipilih oleh pemain kedua-duanya menggunakan rawatan permukaan matte dan mempunyai tekstur yang baik dengan fon perak kelabu dan merah.

See all articles