一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

服務器之家 - 編程語言 - PHP教程 - 在TP5數據庫中四個字段實現無限分類的示例

在TP5數據庫中四個字段實現無限分類的示例

2021-09-08 15:16JESSE_JAVA PHP教程

今天小編就為大家分享一篇在TP5數據庫中四個字段實現無限分類的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

效果:

在TP5數據庫中四個字段實現無限分類的示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE `NewTable` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
`pid` int(10) UNSIGNED ZEROFILL NOT NULL ,
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`path` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=53
CHECKSUM=0
ROW_FORMAT=DYNAMIC
DELAY_KEY_WRITE=0
;
?
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
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<body>
 <h1>四個字段的無限分類</h1>
 <form action="{:url('add')}" method="post">
 請選擇上級分類:<select name="pid">
 <option value="0">頂級分類</option>
 {foreach $cates as $vo}
 <option value={$vo.id}>|{$vo.pre}{$vo.name}</option>
 
 {/foreach}
 
 </select><br/>
 
 
 請填寫分類的名稱:<input type="text" name="name"/></br>
 <input type="submit" value="添加">
 </form>
 
</body>
</html>
?
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
namespace app\index\controller;
use think\Db;
use think\Controller;
use app\model\Category;
 
 
class Index extends Controller
{
 public function index()
 {
 //添加分類的界面
 //查詢所有的分類
 $db=Db::name('categroy');
 $data=$db->order('concat(path,"-",id)')->select();
 #order('concat(path,"-",id)')自動排序
 foreach ($data as &$cate) {
  $prefix='';
  $i=count(explode("-", $cate['path']));
  for($n=0;$n<=$i;$n++){
  $prefix.="--";
  }
  $cate['pre']=$prefix;
 }
 $this->assign('cates',$data);
 return $this->fetch();
 }
 public function add(){
 $db=Db::name('categroy');
 if($_POST['pid']==0){
  $_POST['path']=0;
 
 }else{
  $_POST['path']=$db->where('id='.$_POST['pid'])->value('path')."-".$_POST['pid'];
 }
  $name=$_POST['name'];
 if($db->insert($_POST)){
  $this->success('添加成功');
 }else{
  $this->error('添加失敗');
 }
 #原理:4個字段
 /*
 ID PID NAME PATH
 1 0 服裝 0-1
 2 0 游戲 0-2
 3 1 男裝 0-1-3
 4 3 上衣 0-1-3-4
 */
 }}

還有一個沒有寫完的遞歸無限分類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public function user(){
$db=Db::name('categroy1');
// $data=$db->getTree();
$opt=$db->getOption($data);
$this->assign('opt',$opt);
$this->assign('cates',$data);
return $this->fetch();
}
public function doAdd(){
//執行添加數據
$db=Db::name('categroy1');
if($db->insert()){
$this->success('添加成功',url('index'));
}else{
$this->error('添加失敗',url('index'));
}
return $this->fetch();
}

Model

?
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
<?php
class CategoryModel extends Model{
 
 
 #通過上級分類的主鍵id號查詢子類
 public function getTree($pid=0){
 $data=$this->where('pid='.$pid)->select();
 foreach($data as &$cate){
 #通過該分類的主鍵id查詢該分類的子類
 $cate['cates']=$this->getTree($cate['id']);
 }
 return $data;
 }
 
 #拼裝屬性結構
 #通過一個數組組裝option
 public function getOption($data){
 static $i=0;
 for($n=0;$n<=$i*2;$n++){
 $prefix.="-";
 }
 foreach ($data as $cate) {
 $opt.="<option value='".$cate['id']."'>".$prefix.$cate['name']."</option>";
 #判斷該分類下是否包含子類,如果有子類,將數組傳入接著拼裝
 if(!empty($case['cates'])){
 $i++;
 $opt.=$this->getOption($case['cases']);
 }else{
 $i=0;
 }
 return $opt;
 }
 }
}

以上這篇在TP5數據庫中四個字段實現無限分類的示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/weixin_36171533/article/details/79307643

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 天堂中文在线观看 | 艹b视频在线观看 | 亚洲图片一区二区三区 | 无码射肉在线播放视频 | 日韩成人在线免费视频 | 四虎精品成人免费视频 | 国产有码在线 | 校花被拖到野外伦小说 | 日韩综合网 | 精品国产午夜久久久久九九 | 精品视频久久久久 | 91网红福利精品区一区二 | 女教师被女同学调教成脚奴 | 18欧美同性videos可播放 | 韩国美女主播在线 | 姐姐不~不可以动漫在线观看 | 国产精品 视频一区 二区三区 | 色热综合 | 亚洲天堂网2018 | 97久久精品午夜一区二区 | 精品久久综合一区二区 | 国产精品视频自拍 | 欧美高清在线不卡免费观看 | 私人影院在线播放 | 风间由美理论片在线观看 | 草莓视频网站18勿进 | 亚洲AV国产国产久青草 | 日本免费精品视频 | 2020中文字幕 | 精品亚洲欧美中文字幕在线看 | 亚洲成人第一 | 好大好硬视频 | 亚洲国产精品网站久久 | bt天堂在线观看国产 | 欧美 亚洲 一区 | a级成人毛片免费图片 | 俄罗斯烧性春三级k8播放 | 欧洲网色偷偷亚洲男人的天堂 | 美女舒服好紧太爽了视频 | 丝袜足控免费网站xx动漫漫画 | 国产精品高清视亚洲一区二区 |