国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP實現無限分類的實現方法

PHP實現無限分類的實現方法

2021-03-25 15:50小毅、 PHP教程

無限級分類是一種設計技巧,在開發中經常使用,本篇文章主要介紹PHP實現無限分類的實現方法,有需要的可以了解一下。

無限級分類是一種設計技巧,在開發中經常使用,例如:網站目錄、部門結構、文章分類。筆者覺得它在對于設計表的層級結構上面發揮很大的作用,比如大家在一些平臺上面,

填寫邀請人,它就是一種上下級的關系,上級會有多個下級,下級又會有自己的分支,大多數都是利用遞歸的思想去實現。話不多說,首先來溫故一下遞歸的實現

遞歸(程序調用自身的編程技巧):

1、$_GLOBALS[result]

2、static $result

3、參數引用&

舉例:遍歷1-10

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
```
$i=0;
function deeploop( $i ){
  global $i;
  $i++;
  echo $i;
  if( $i<10 ){
    deeploop($i);
  }
 
}
 
function deeploop( ){
  static $i=0;
  $i++;
  echo $i;
  if( $i<10 ){
    deeploop($i);
  }
 
}
 
 
function deeploop( &$i=0 ){
  $i++;
  echo $i;
  if( $i<10 ){
    deeploop($i);
  }
 
}
 
```

一、無限分類實現:

1、表設計設置父id 頂級父id設為0   建立族譜樹;每一個分類都需記錄它的父級id。( pid=0 代表頂級 )   

id pid catename cateorder createtime  ( 主鍵id,父id,分類name,分類排序,創建時間)

舉例:網站的分類目錄結構;餐飲的分類結構;評論的結構

 2、全路徑無限分類(以一個字段將所有父級id按順序記錄下來)

 id path catename cateorder createtime  ( 主鍵id,逗號分隔的順序排列父id,分類name,分類排序,創建時間)

優缺點:

全路徑查詢方便;增加,移動分類時數據維護稍顯復雜;

二、舉例實現(網站目錄):

分類表:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
```
  #父級Id遞歸法
  CREATE TABLE `deepcate`(
    `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `pid` int(11) NOT NULL DEFAULT 0,
    `catename` char(25) NOT NULL,
    `cateorder` int(6) ,
    `createtime` date
  )ENGINE=INNODB default CHARSET=utf8;
  
  
  //數據
  INSERT INTO `deepcate` VALUES(1,0,'圖片',null,'2016-11-01'),
                ( 2,1,'美女',null,'2016-11-01'),
                ( 3,1,'新聞',null,'2016-11-01'),
                ( 4,2,'足球寶貝',null,'2016-11-01'),
                ( 5,2,'日韓明星',null,'2016-11-01'),
                ( 6,5,'美女寫真',null,'2016-11-01');
                
  #全路徑
  CREATE TABLE `qljcate` (
    `id` int(11) NOT NULL,
    `path` char(255) ,
    `catename` char(25) NOT NULL,
    `cateorder` int(6),
    `createtime` date
  )ENGINE=INNODB default CHARSET=utf8;
  
  INSERT INTO `qljcate` VALUES( 1,null,'圖片',null,'2016-11-01'),
                ( 2,1,'美女圖片',null,'2016-11-01'),
            ( 3,1,2,'足球寶貝',null,'2016-11-01'),
                ( 4,1,2,'日韓明星',null,'2016-11-01'),
                ( 5,1,2,4,'美女寫真',null,'2016-11-01');
```

    獲取圖片所在的目錄路徑:
  

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
```
  #父級Id遞歸法
  CREATE TABLE `deepcate`(
    `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `pid` int(11) NOT NULL DEFAULT 0,
    `catename` char(25) NOT NULL,
    `cateorder` int(6) ,
    `createtime` date
  )ENGINE=INNODB default CHARSET=utf8;
  
  
  //數據
  INSERT INTO `deepcate` VALUES(1,0,'圖片',null,'2016-11-01'),
                ( 2,1,'美女',null,'2016-11-01'),
                ( 3,1,'新聞',null,'2016-11-01'),
                ( 4,2,'足球寶貝',null,'2016-11-01'),
                ( 5,2,'日韓明星',null,'2016-11-01'),
                ( 6,5,'美女寫真',null,'2016-11-01');
                
  #全路徑
  CREATE TABLE `qljcate` (
    `id` int(11) NOT NULL,
    `path` char(255) ,
    `catename` char(25) NOT NULL,
    `cateorder` int(6),
    `createtime` date
  )ENGINE=INNODB default CHARSET=utf8;
  
  INSERT INTO `qljcate` VALUES( 1,null,'圖片',null,'2016-11-01'),
                ( 2,1,'美女圖片',null,'2016-11-01'),
            ( 3,1,2,'足球寶貝',null,'2016-11-01'),
                ( 4,1,2,'日韓明星',null,'2016-11-01'),
                ( 5,1,2,4,'美女寫真',null,'2016-11-01');
```

*注意點:

移動分類不能移到自己及其子類下面;刪除分類 (只能刪除最底層的分類,及不含子類的分類;換言之,只能從最底層刪起).

   思考圖片類型下所有的圖片分類? 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
```
  #pid 父級id實現法
  function GetAllcate( $id,&$result=array() ){
    $sql = "SELECT * FROM deepcate WHERE pid in ({$id})";
    $query = mysql_query( $sql );
    $row = mysql_fetch_assoc( $query );
    if( mysql_num_rows($row)>0 )
    {
      $idlist = array();
      while( $row ){
        $result[] = $row;
        $idlist[] = $row['id'];
      }
      $id = implode(',',$idlist);
      GetAllcate( $id,$result );
    
    }
    
    $result = array_unique( $result );
    return $result;
  }
  ```

此類方法比較適用于查詢所在父分類下所有的書籍、文章。。。當然,全路徑可以直接獲取,就不再此提出了。

實際操作中,我們可以根據實際情況設計合理的表結構。

舉個實例,連鎖門店實現商品的管理,門店的賬戶設置就會存在上下級關系,根據代理點的分區可能存在這種下級擁有自己下級,那么采用這種無限分類的方法就比較靈活面對這種關系體系,只需設定每個賬戶等級,就能對不同的門店設定權限分配。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲国产精品福利 | 日本乱码视频 | 国产色视频在线观看免费 | 一级做a爰片久久高潮 | 一区二区在线影院 | 免费看a| av在线综合网 | 欧美一级全黄 | 97精品一区二区 | 国产成人天天爽高清视频 | 一区二区三区在线免费视频 | 欧美怡红院视频一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 天堂精品一区二区三区 | 91麻豆精品国产91久久久更新时间 | 欧美国产日韩一区二区三区 | 视频在线一区二区 | 亚洲国产精品久久久久婷婷老年 | 国产在线一区二区三区 | 久久九九| 成人在线免费网站 | 操操操干干干 | 中文字幕精品一区 | 日韩视频在线一区二区 | 国产精品久久久久久中文字 | 激情久久久 | 91新视频 | 欧美日韩一区二区视频在线观看 | 在线日本视频 | 婷婷色综合 | 国产一级特黄aaa大片 | 一级电影免费在线观看 | 久久久久国产一级毛片高清片 | 美女主播精品视频一二三四 | 午夜影院免费观看 | 午夜在线| 久久精品亚洲精品 | 久草天堂| 国产视频精品免费 | 日本激情网 | 精品欧美一区二区三区久久久 |