婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 在TP5數據庫中四個字段實現無限分類的示例

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

熱門標簽:格陵蘭島地圖標注 太原極信防封電銷卡 地圖標注入哪個科目 熱線電話機器人 福泉電話機器人 事業單位如何百度地圖標注 天津營銷電話機器人加盟代理 電銷招聘機器人 南寧crm外呼系統平臺

效果:

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
;
!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>
?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
 */
 }}

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

 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

?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數據庫中四個字段實現無限分類的示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • tp5(thinkPHP5)框架數據庫Db增刪改查常見操作總結
  • tp5(thinkPHP5)框架實現多數據庫查詢的方法
  • tp5(thinkPHP5)框架連接數據庫的方法示例
  • tp5(thinkPHP5)操作mongoDB數據庫的方法
  • thinkPHP5實現的查詢數據庫并返回json數據實例
  • thinkPHP5實現數據庫添加內容的方法
  • TP5框架實現的數據庫備份功能示例

標簽:金華 香港 阿克蘇 通化 自貢 寶雞 郴州 佳木斯

巨人網絡通訊聲明:本文標題《在TP5數據庫中四個字段實現無限分類的示例》,本文關鍵詞  在,TP5,數據庫,中,四個,字段,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在TP5數據庫中四個字段實現無限分類的示例》相關的同類信息!
  • 本頁收集關于在TP5數據庫中四個字段實現無限分類的示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 云南省| 广河县| 许昌县| 微山县| 泸州市| 郯城县| 九龙县| 东宁县| 东明县| 堆龙德庆县| 宁乡县| 武鸣县| 江永县| 武义县| 视频| 博爱县| 阿巴嘎旗| 安西县| 湄潭县| 昌吉市| 山西省| 双流县| 新疆| 广汉市| 九江市| 昌都县| 武清区| 泸溪县| 弥渡县| 威海市| 西贡区| 元氏县| 保山市| 台北县| 安新县| 娱乐| 扎囊县| 安平县| 德庆县| 朔州市| 布尔津县|