欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于php無限分類的深入理解

 更新時(shí)間:2013年06月02日 15:38:59   作者:  
本篇文章是對php無限分類就行了詳細(xì)的分析介紹,需要的朋友參考下
無限分類是實(shí)際開發(fā)中經(jīng)常用到的一種數(shù)據(jù)結(jié)構(gòu),一般我們稱之為樹形結(jié)構(gòu)。
題設(shè):類似淘寶的商品分類,可以在任意分類設(shè)置其子類。
 
一、創(chuàng)建`type`數(shù)據(jù)表
`id` 自增長
`fid` int(11) 默認(rèn)(0) ,父節(jié)點(diǎn)id
`name` varchar(50),分類名稱
復(fù)制代碼 代碼如下:

CREATE TABLE `type` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fid` int(11) NOT NULL DEFAULT '0',
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
)

二、添加
我們先添加幾個(gè)頂級分類
復(fù)制代碼 代碼如下:

INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '0', '手機(jī)');
INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '0', '電腦');
INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '0', '鞋子');
INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '0', '衣服');

這里fid=0是代表頂級分類

接著我們?yōu)閧電腦}添加幾個(gè)個(gè)子分類
復(fù)制代碼 代碼如下:

INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '2', '臺式'), (NULL, '2', '筆記本');

這里fid=2,2這個(gè)id是分類{電腦}的id,如果是添加{鞋子}的子分類則fid=3
同理我們?yōu)閧筆記本}添加子分類則fid=6
復(fù)制代碼 代碼如下:

INSERT INTO `type` (`id`, `fid`, `name`) VALUES (NULL, '6', 'ausu'), (NULL, '6', 'hp');

三、刪除
如果我們想刪除{筆記本}這個(gè)分類,很簡單
復(fù)制代碼 代碼如下:

DELETE FROM `type` WHERE `id`=6

{筆記本}的子分類我們也要記得做相應(yīng)的處理
復(fù)制代碼 代碼如下:

function del($fid) {
    $sql="SELECT * FROM `type` WHERE `fid`=$fid";
    $rs=mysql_query($sql);

    for ($i = 0; $i < count($rs); $i++) {
        $sql="DELETE FROM `type` WHERE `id`={$rs[$i]['id']}";
        mysql_query($sql);

        del($rs['id']);//遞歸
    }
}
del(6);//執(zhí)行操作

這里你也許你會疑惑為什么那么麻煩用遞歸,而不是直接這樣刪除
復(fù)制代碼 代碼如下:

DELETE FROM `type` WHERE `fid`=6

這樣我們不就可以直接刪除{ausu}、{hp}?但是假設(shè){ausu}有一個(gè)子分類{a1},{a1}也有一個(gè)子分類{a2},如果不用遞歸我們就無法徹底刪除數(shù)據(jù)。

三、查找
1.查找{電腦}的子分類
復(fù)制代碼 代碼如下:

SELECT * FROM `type` WHERE `fid`=2

2.查找{電腦}的所有子分類
復(fù)制代碼 代碼如下:

function sel($fid) {
    $sql="SELECT * FROM `type` WHERE `fid`=$fid";
    $rs=mysql_query($sql);

    for ($i = 0; $i < count($rs); $i++) {
        echo $rs[$i]['name'];

        sel($rs[$i]['id']);//遞歸
    }
}
sel(2);

四、實(shí)際數(shù)據(jù)應(yīng)用
在數(shù)據(jù)表添加一個(gè)字段`tid`,字段值為記錄所屬分類`type`表的id。必須是id不能是name,因?yàn)閚ame的值可能會改變。
例如查詢屬于{電腦}分類的商品
復(fù)制代碼 代碼如下:

SELECT * FROM `goods` WHERE `tid`=2

注:代碼沒有運(yùn)行過可能會有錯(cuò)誤,但是思路是正確的,主要的是理解樹形結(jié)構(gòu),而不是記住代碼。

相關(guān)文章

  • PHP+memcache實(shí)現(xiàn)消息隊(duì)列案例分享

    PHP+memcache實(shí)現(xiàn)消息隊(duì)列案例分享

    現(xiàn)在memcache在服務(wù)器緩存應(yīng)用比較廣泛,下面我來介紹memcache實(shí)現(xiàn)消息隊(duì)列等待的一個(gè)例子,有需要了解的朋友可參考。
    2014-05-05
  • PHP程序員簡單的開展服務(wù)治理架構(gòu)操作詳解(一)

    PHP程序員簡單的開展服務(wù)治理架構(gòu)操作詳解(一)

    這篇文章主要介紹了PHP程序員簡單的開展服務(wù)治理架構(gòu)操作,結(jié)合實(shí)例形式詳細(xì)分析了PHP開展服務(wù)治理架構(gòu)操作相關(guān)原理、RPC通信實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • php簡單實(shí)現(xiàn)MVC

    php簡單實(shí)現(xiàn)MVC

    文章簡單介紹了MVC的概念,php中的MVC,使用MVC的原因,以及如何簡單是先MVC,非常詳細(xì),這里推薦給大家。
    2015-02-02
  • PHP判斷當(dāng)前使用的是什么瀏覽器(推薦)

    PHP判斷當(dāng)前使用的是什么瀏覽器(推薦)

    PHP簡單判斷當(dāng)前使用的是什么瀏覽器,判斷瀏覽器類型的方法,方便統(tǒng)計(jì)網(wǎng)站訪問用戶使用瀏覽器的比例。這篇文章主要介紹了PHP判斷當(dāng)前使用的是什么瀏覽器(推薦),需要的朋友可以參考下
    2019-10-10
  • Php中使用Select 查詢語句的實(shí)例

    Php中使用Select 查詢語句的實(shí)例

    php中要查詢mysql數(shù)據(jù)庫中的內(nèi)容我們必須先連接mysql數(shù)據(jù)庫,然后再利用sql語句進(jìn)行查詢,下面我們來看一些例子吧
    2014-02-02
  • 基于PHP如何把漢字轉(zhuǎn)化為拼音

    基于PHP如何把漢字轉(zhuǎn)化為拼音

    將漢字轉(zhuǎn)化為拼音是程序員們經(jīng)常用到的操作任務(wù)之一,大家還經(jīng)常見到ios 將漢字轉(zhuǎn)化為拼音、excel漢字轉(zhuǎn)化成拼音、excel漢字轉(zhuǎn)化為拼音等,本文通過一段代碼實(shí)例給大家介紹基于PHP如何把漢字轉(zhuǎn)化為拼音,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • 對laravel的session獲取與存取方法詳解

    對laravel的session獲取與存取方法詳解

    今天小編就為大家分享一篇對laravel的session獲取與存取方法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Drupal7連接多個(gè)數(shù)據(jù)庫及常見問題解決

    Drupal7連接多個(gè)數(shù)據(jù)庫及常見問題解決

    這篇文章主要介紹了Drupal7連接多個(gè)數(shù)據(jù)庫的方法、操作實(shí)例,以及常見問題解決方法,需要的朋友可以參考下
    2014-03-03
  • 個(gè)人寫的PHP驗(yàn)證碼生成類分享

    個(gè)人寫的PHP驗(yàn)證碼生成類分享

    這篇文章主要介紹了個(gè)人寫的PHP驗(yàn)證碼生成類分享,此驗(yàn)證碼類直接拿去就可以用,也可以用來學(xué)習(xí)和分析,需要的朋友可以參考下
    2014-08-08
  • 淺談laravel 5.6 安裝 windows上使用composer的安裝過程

    淺談laravel 5.6 安裝 windows上使用composer的安裝過程

    今天小編就為大家分享一篇淺談laravel 5.6 安裝 windows上使用composer的安裝過程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10

最新評論