最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年10月18日 10:19:23   作者:JESSE_JAVA  
今天小編就為大家分享一篇在TP5數據庫中四個字段實現無限分類的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

效果:

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/>
 
 
 請?zhí)顚懛诸惖拿Q:<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(){
 //執(zhí)行添加數據
 $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數據庫中四個字段實現無限分類的示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 30個php操作redis常用方法代碼例子

    30個php操作redis常用方法代碼例子

    這篇文章主要介紹了30個php操作redis常用方法代碼例子,本文其實不止30個方法,可以操作string類型、list類型和set類型的數據,需要的朋友可以參考下
    2014-07-07
  • php接口實現拖拽排序功能

    php接口實現拖拽排序功能

    列表拖拽排序是一個很常見的功能,在后端接口處理中經常會用到,今天小編給大家?guī)砹藀hp接口實現拖拽排序功能,感興趣的朋友一起看看吧
    2018-04-04
  • PHP 進程池與輪詢調度算法實現多任務的示例代碼

    PHP 進程池與輪詢調度算法實現多任務的示例代碼

    這篇文章主要介紹了PHP 進程池與輪詢調度算法實現多任務的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Laravel6.0.4中將添加計劃任務事件的方法步驟

    Laravel6.0.4中將添加計劃任務事件的方法步驟

    此版本包括計劃任務事件、新的 JSON 斷言方法和所有最新更改。這篇文章主要介紹了Laravel6.0.4中將添加計劃任務事件的方法步驟,感興趣的可以了解一下
    2019-10-10
  • ThinkPHP模板Switch標簽用法示例

    ThinkPHP模板Switch標簽用法示例

    這篇文章主要介紹了ThinkPHP模板Switch標簽用法,需要的朋友可以參考下
    2014-06-06
  • 淺談PHPANALYSIS提取關鍵字

    淺談PHPANALYSIS提取關鍵字

    這篇文章主要介紹了PHPANALYSIS如何提取關鍵字,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 在laravel框架中實現封裝公共方法全局調用

    在laravel框架中實現封裝公共方法全局調用

    今天小編就為大家分享一篇在laravel框架中實現封裝公共方法全局調用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • PHP+jQuery 注冊模塊的改進(三):更新到Smarty3.1

    PHP+jQuery 注冊模塊的改進(三):更新到Smarty3.1

    本文是PHP+jQuery 注冊模塊的改進的第三篇,主要記錄了講Smarty更新到最新的3.1版本,是篇非常使用的文章,有需要的朋友可以參考下
    2014-10-10
  • PHP實現首字母(截取第一個漢字)生成頭像圖片

    PHP實現首字母(截取第一個漢字)生成頭像圖片

    會員系統(tǒng)中,用戶如果不上傳自定義頭像,使用固定圖片作為頭像未免有些單調,PHP可以實現生成用戶名首字母或者第一個漢字(第一個字符)的頭像圖片,不使用第三方API,第三方雖然圖片比較多,但是會有超時
    2024-06-06
  • php下獲取Discuz論壇登錄用戶名、用戶組、用戶ID等信息的實現代碼

    php下獲取Discuz論壇登錄用戶名、用戶組、用戶ID等信息的實現代碼

    前面有一篇文章講過自己從cookie和discuz數據庫中取用戶名、用戶組、用戶ID等信息,但那個并不一定準確,因為discuz登錄時會使用COOKIE中的auth值來動態(tài)登錄,而cookie信息是滯后的,所以獲取到的信息并不完全準確。
    2010-12-12

最新評論

台南市| 佛学| 通榆县| 思茅市| 新巴尔虎左旗| 黄山市| 竹山县| 莆田市| 钟山县| 新宁县| 新蔡县| 罗山县| 海门市| 满城县| 谢通门县| 乌什县| 安西县| 客服| 和平区| 呈贡县| 内黄县| 大名县| 册亨县| 贺州市| 繁峙县| 天全县| 宿迁市| 玛曲县| 四会市| 山东省| 革吉县| 襄城县| 东乡族自治县| 峨眉山市| 阳谷县| 汉阴县| 静安区| 连州市| 游戏| 安吉县| 凤翔县|