中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

實(shí)現(xiàn)PHP+Mysql無(wú)限分類的方法匯總
來(lái)源:易賢網(wǎng) 閱讀:969 次 日期:2015-03-04 10:21:56
溫馨提示:易賢網(wǎng)小編為您整理了“實(shí)現(xiàn)PHP+Mysql無(wú)限分類的方法匯總”,方便廣大網(wǎng)友查閱!

這篇文章主要給大家匯總介紹了實(shí)現(xiàn)PHP+Mysql無(wú)限分類的2種方法,并對(duì)比分析了2種方法的優(yōu)劣,需要的朋友可以參考下

無(wú)限分類是個(gè)老話題了,來(lái)看看PHP結(jié)合Mysql如何實(shí)現(xiàn)。

第一種方法

這種方法是很常見(jiàn)、很傳統(tǒng)的一種,先看表結(jié)構(gòu)

表:category

id int 主鍵,自增

name varchar 分類名稱

pid int 父類id,默認(rèn)0

頂級(jí)分類的 pid 默認(rèn)就是0了。當(dāng)我們想取出某個(gè)分類的子分類樹(shù)的時(shí)候,基本思路就是遞歸,當(dāng)然,出于效率問(wèn)題不建議每次遞歸都查詢數(shù)據(jù)庫(kù),通常的做法是先講所有分類取出來(lái),保存到PHP數(shù)組里,再進(jìn)行處理,最后還可以將結(jié)果緩存起來(lái)以提高下次請(qǐng)求的效率。

先來(lái)構(gòu)建一個(gè)原始數(shù)組,這個(gè)直接從數(shù)據(jù)庫(kù)中拉出來(lái)就行:

代碼如下:

$categories = array(

array('id'=>1,'name'=>'電腦','pid'=>0),

array('id'=>2,'name'=>'手機(jī)','pid'=>0),

array('id'=>3,'name'=>'筆記本','pid'=>1),

array('id'=>4,'name'=>'臺(tái)式機(jī)','pid'=>1),

array('id'=>5,'name'=>'智能機(jī)','pid'=>2),

array('id'=>6,'name'=>'功能機(jī)','pid'=>2),

array('id'=>7,'name'=>'超級(jí)本','pid'=>3),

array('id'=>8,'name'=>'游戲本','pid'=>3),

);

目標(biāo)是將它轉(zhuǎn)化為下面這種結(jié)構(gòu)

電腦

筆記本

超級(jí)本

游戲本

臺(tái)式機(jī)

手機(jī)

智能機(jī)

功能機(jī)

用數(shù)組來(lái)表示的話,可以增加一個(gè) children 鍵來(lái)存儲(chǔ)它的子分類:

代碼如下:

array(

//1對(duì)應(yīng)id,方便直接讀取

1 => array(

'id'=>1,

'name'=>'電腦',

'pid'=>0,

children=>array(

&array(

'id'=>3,

'name'=>'筆記本',

'pid'=>1,

'children'=>array(

//此處省略

)

),

&array(

'id'=>4,

'name'=>'臺(tái)式機(jī)',

'pid'=>1,

'children'=>array(

//此處省略

)

),

)

),

//其他分類省略

)

處理過(guò)程:

代碼如下:

$tree = array();

//第一步,將分類id作為數(shù)組key,并創(chuàng)建children單元

foreach($categories as $category){

$tree[$category['id']] = $category;

$tree[$category['id']]['children'] = array();

}

//第二部,利用引用,將每個(gè)分類添加到父類children數(shù)組中,這樣一次遍歷即可形成樹(shù)形結(jié)構(gòu)。

foreach ($tree as $k=>$item) {

if ($item['pid'] != 0) {

$tree[$item['pid']]['children'][] = &$tree[$k];

}

}

print_r($tree);

打印結(jié)果如下:

代碼如下:

Array

(

[1] => Array

(

[id] => 1

[name] => 電腦

[pid] => 0

[children] => Array

(

[0] => Array

(

[id] => 3

[name] => 筆記本

[pid] => 1

[children] => Array

(

[0] => Array

(

[id] => 7

[name] => 超級(jí)本

[pid] => 3

[children] => Array

(

)

)

[1] => Array

(

[id] => 8

[name] => 游戲本

[pid] => 3

[children] => Array

(

)

)

)

)

[1] => Array

(

[id] => 4

[name] => 臺(tái)式機(jī)

[pid] => 1

[children] => Array

(

)

)

)

)

[2] => Array

(

[id] => 2

[name] => 手機(jī)

[pid] => 0

[children] => Array

(

[0] => Array

(

[id] => 5

[name] => 智能機(jī)

[pid] => 2

[children] => Array

(

)

)

[1] => Array

(

[id] => 6

[name] => 功能機(jī)

[pid] => 2

[children] => Array

(

)

)

)

)

[3] => Array

(

[id] => 3

[name] => 筆記本

[pid] => 1

[children] => Array

(

[0] => Array

(

[id] => 7

[name] => 超級(jí)本

[pid] => 3

[children] => Array

(

)

)

[1] => Array

(

[id] => 8

[name] => 游戲本

[pid] => 3

[children] => Array

(

)

)

)

)

[4] => Array

(

[id] => 4

[name] => 臺(tái)式機(jī)

[pid] => 1

[children] => Array

(

)

)

[5] => Array

(

[id] => 5

[name] => 智能機(jī)

[pid] => 2

[children] => Array

(

)

)

[6] => Array

(

[id] => 6

[name] => 功能機(jī)

[pid] => 2

[children] => Array

(

)

)

[7] => Array

(

[id] => 7

[name] => 超級(jí)本

[pid] => 3

[children] => Array

(

)

)

[8] => Array

(

[id] => 8

[name] => 游戲本

[pid] => 3

[children] => Array

(

)

)

)

優(yōu)點(diǎn):關(guān)系清楚,修改上下級(jí)關(guān)系簡(jiǎn)單。

缺點(diǎn):使用PHP處理,如果分類數(shù)量龐大,效率也會(huì)降低。

第二種方法

這種方法是在表字段中增加一個(gè)path字段:

表:category

id int 主鍵,自增

name varchar 分類名稱

pid int 父類id,默認(rèn)0

path varchar 路徑

示例數(shù)據(jù):

id name pid path

1 電腦 0 0

2 手機(jī) 0 0

3 筆記本 1 0-1

4 超級(jí)本 3 0-1-3

5 游戲本 3 0-1-3

path字段記錄了從根分類到上一級(jí)父類的路徑,用id+'-'表示。

這種方式,假設(shè)我們要查詢電腦下的所有后代分類,只需要一條sql語(yǔ)句:

select id,name,path from category where path like (select concat(path,'-',id,'%') as path from category where id=1);

結(jié)果:

+----+-----------+-------+

| id | name | path |

+----+-----------+-------+

| 3 | 筆記本 | 0-1 |

| 4 | 超級(jí)本 | 0-1-3 |

| 5 | 游戲本 | 0-1-3 |

+----+-----------+-------+

這種方式也被很多人所采納,我總結(jié)了下:

優(yōu)點(diǎn):查詢?nèi)菀?,效率高,path字段可以加索引。

缺點(diǎn):更新節(jié)點(diǎn)關(guān)系麻煩,需要更新所有后輩的path字段。

以上就是本文的全部?jī)?nèi)容了,兩種方式,你喜歡哪種?希望大家能夠喜歡。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:實(shí)現(xiàn)PHP+Mysql無(wú)限分類的方法匯總
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2026上岸·考公考編培訓(xùn)報(bào)班

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
国产日韩精品一区二区三区在线| 亚洲国产精品久久久久| 猛男gaygay欧美视频| 影音先锋日韩精品| 欧美视频中文一区二区三区在线观看| 久久高清一区| 欧美大片在线观看| 国产精品美女久久久久aⅴ国产馆| 国产日韩欧美91| 亚洲黄色免费| 欧美在线观看视频| 欧美精品免费播放| 国外成人性视频| 亚洲主播在线观看| 免费美女久久99| 国产日韩欧美成人| 亚洲视频第一页| 男女精品网站| 国产欧美日韩免费| 亚洲免费成人av电影| 久久久久久久久蜜桃| 欧美午夜一区二区三区免费大片| 国产综合视频| 香蕉av777xxx色综合一区| 欧美久久九九| 亚洲国产精品一区| 久久免费视频一区| 国产视频在线一区二区| 亚洲图片在区色| 欧美女同视频| 一区国产精品| 久久久国产精品亚洲一区| 国产精品成人一区| 99视频一区二区| 欧美精品v国产精品v日韩精品| 伊人色综合久久天天五月婷| 午夜精品剧场| 国产精品视频大全| 亚洲影院在线观看| 国产精品v片在线观看不卡| 亚洲精品欧美极品| 欧美成人免费在线观看| 在线精品视频免费观看| 久久精品色图| 国产一区二区三区日韩| 欧美一区二区三区免费看| 国产精品日韩| 午夜精品999| 国产伦精品一区二区三区免费| 亚洲一区二区网站| 国产精品久久久久久久久久直播| 中文成人激情娱乐网| 欧美视频一区二区三区…| 一区二区三区四区在线| 国产精品xnxxcom| 亚洲视频每日更新| 国产精品热久久久久夜色精品三区| 亚洲一级电影| 国产精自产拍久久久久久| 性欧美1819sex性高清| 国产亚洲欧美一区二区| 久久久国产精彩视频美女艺术照福利 | 欧美午夜片在线观看| 在线视频亚洲| 国产精品美女在线观看| 性色av一区二区三区在线观看| 国产情侣一区| 久色婷婷小香蕉久久| 亚洲人体1000| 国产精品久久久久7777婷婷| 午夜精品影院| 国产一区二区三区四区老人| 久久综合伊人77777麻豆| 91久久精品网| 欧美日韩综合视频网址| 亚洲欧美国产高清| 国产亚洲欧美一区二区三区| 免费久久久一本精品久久区| 中文成人激情娱乐网| 国产色产综合产在线视频| 久久综合伊人77777麻豆| 99精品欧美一区| 国产欧美日韩精品丝袜高跟鞋| 久久婷婷国产综合国色天香| 99视频+国产日韩欧美| 国产精品免费观看在线| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲精品视频免费观看| 国产精品激情电影| 久久一区二区三区av| 一本大道久久a久久精二百| 国产精品入口麻豆原神| 久久尤物电影视频在线观看| 夜夜嗨网站十八久久| 国产亚洲福利社区一区| 欧美理论电影在线观看| 欧美综合二区| aa日韩免费精品视频一| 激情另类综合| 国产精品成人va在线观看| 久久在线视频在线| 一区二区精品| 红桃视频一区| 欧美色图麻豆| 美女爽到呻吟久久久久| 国产精品99久久久久久久久| 尤物在线观看一区| 国产美女一区二区| 欧美精品日日鲁夜夜添| 久久久久在线| 亚洲欧美日韩电影| 日韩手机在线导航| 在线看欧美日韩| 国产午夜精品理论片a级探花| 欧美日韩大片一区二区三区| 蜜桃av噜噜一区二区三区| 午夜久久久久久| 在线视频你懂得一区二区三区| 欧美三级黄美女| 欧美一区精品| 欧美一区二区三区在线看| 欧美日韩久久| 一区二区三区日韩在线观看| 欧美视频中文在线看| 久久精品久久综合| 99国产一区| 黄色亚洲大片免费在线观看| 老牛影视一区二区三区| 一本大道久久a久久精二百| 欧美日韩亚洲综合一区| 久久久欧美一区二区| 亚洲视频碰碰| 亚洲精品欧美日韩| 亚洲电影av| 精久久久久久久久久久| 国产一二精品视频| 国产一区二区成人久久免费影院| 欧美性大战久久久久久久蜜臀| 欧美日韩调教| 国产精品第2页| 国产精品成av人在线视午夜片| 欧美日韩在线不卡一区| 欧美丝袜第一区| 欧美日韩在线另类| 欧美三级在线播放| 国产精品扒开腿做爽爽爽软件| 国产精品jvid在线观看蜜臀| 欧美日韩亚洲高清一区二区| 欧美剧在线观看| 欧美日韩在线播放三区| 欧美日韩免费区域视频在线观看| 欧美另类专区| 欧美午夜不卡影院在线观看完整版免费 | 欧美一区二区三区久久精品茉莉花 | 国产一区二区三区久久久久久久久| 国产精品尤物| 国产日产欧产精品推荐色| 国产欧美日韩一区二区三区在线观看| 国产欧美日韩综合一区在线观看| 国产在线拍揄自揄视频不卡99| 精久久久久久久久久久| 亚洲国产专区| 亚洲视频免费在线| 午夜精品久久久久久久白皮肤| 欧美一区网站| 女生裸体视频一区二区三区| 欧美日韩在线三级| 国产日韩欧美中文在线播放| 极品尤物av久久免费看 | 午夜一区二区三区不卡视频| 久久www成人_看片免费不卡| 另类酷文…触手系列精品集v1小说| 欧美高清影院| 国产精品伦子伦免费视频| 国产一区二区高清不卡| 亚洲电影自拍| 一区二区三区三区在线| 欧美在线免费观看视频| 美女露胸一区二区三区| 欧美视频一区二区在线观看 | 欧美日韩国产系列| 国产日韩一区在线| 亚洲黄一区二区三区| 亚洲免费网址| 欧美成人一品| 国产女人aaa级久久久级| 亚洲激情成人| 午夜视黄欧洲亚洲| 欧美国产免费| 国产一区av在线| 一个色综合导航| 久久这里只有精品视频首页| 国产精品播放| 亚洲精华国产欧美| 久久av一区| 欧美吻胸吃奶大尺度电影| 精久久久久久久久久久| 亚洲一区欧美激情| 欧美大尺度在线| 国内精品久久久久影院薰衣草|