thinkphp之无限分类
namespace Home\Controller;
use Home\Controller; class CategoryController extends Controller
{
//无限分类读取导航
protected function getCategory()
{
//实例化导航模型
$category = M("category");
//定义并且执行SQL,返回结果为数组
$sql="SELECT title,catid,catname,listorder,ismean,arrparentid,concat(arrparentid,',',catid) as fullpath FROM `tp_category` as a,`tp_content_type` as b where a.modelid = b.id ORDER BY fullpath ASC;";
$data = $category->query($sql);
//定义空数组$result用来接收计算出层阶后的结果
$result = array();
foreach($data as $v)
{
$deep = count(explode(',',trim($v['fullpath'],',')));
$v['catname'] = str_repeat(' ',($deep-1)*3).'|--'.$v['catname'];
$result[] = $v;
}
//将结果以二维数组返回
return $result;
} //栏目列表
public function index()
{
//调用无限分类读取导航方法
$data = $this->getCategory();
//模版赋值
$this->assign("data",$data);
//调用模板
$this->display();
} }
CREATE TABLE IF NOT EXISTS `tp_category` (
`catid` int(4) NOT NULL AUTO_INCREMENT COMMENT '栏目ID',
`catname` varchar(255) NOT NULL COMMENT '栏目名称',
`url` varchar(255) NOT NULL COMMENT '栏目URL',
`type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '栏目类型',
`modelid` tinyint(1) NOT NULL DEFAULT '0' COMMENT '模型ID',
`parentid` int(4) NOT NULL COMMENT '父ID',
`arrparentid` varchar(255) NOT NULL COMMENT '所有父类ID',
`issoncatid` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否有子栏目',
`listorder` int(4) NOT NULL DEFAULT '0' COMMENT '显示顺序',
`ismean` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否显示,1表示显示;0表示隐藏',
PRIMARY KEY (`catid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='栏目表' AUTO_INCREMENT=36 ; --
-- 转存表中的数据 `tp_category`
-- INSERT INTO `tp_category` (`catid`, `catname`, `url`, `type`, `modelid`, `parentid`, `arrparentid`, `issoncatid`, `listorder`, `ismean`) VALUES
(1, '最新资讯', '/Home/News/newsList', 1, 2, 0, '0', 0, 1, 0),
(2, '特色主题游学', '/Home/Characteristic', 1, 5, 0, '0', 1, 2, 0),
(3, '商学院海外访学', '/Home/Business', 1, 5, 0, '0', 1, 3, 0),
(4, '出国访学', '/Home/Goabroad', 1, 5, 0, '0', 1, 4, 0),
(5, '精彩视图', '/Home/Marvellous', 1, 3, 0, '0', 1, 5, 0),
(6, '营地风采', '/Home/Camp', 1, 2, 0, '0', 1, 6, 0),
(7, '专业答疑', '/Home/Answer', 1, 2, 0, '0', 0, 7, 0),
(8, '青少年特色游学', '/home/Teenagers', 1, 5, 0, '0', 0, 8, 0),
(9, '金融类海外研修', '/Home/Finance', 1, 5, 0, '0', 0, 9, 0),
(10, '美加路线', '/Home/Characteristic/list', 1, 5, 20, '0,2,20', 0, 1, 0),
(11, '澳洲路线', '/Home/Characteristic/list', 1, 5, 20, '0,2,20', 0, 2, 0),
(12, '欧洲路线', '/Home/Characteristic/list', 1, 5, 20, '0,2,20', 0, 3, 0),
(13, '亚洲路线', '/Home/Characteristic/list', 1, 5, 20, '0,2,20', 0, 4, 0),
(14, '精彩照片', '/Home/Marvellous/photo', 1, 3, 5, '0,5', 0, 1, 0),
(15, '精彩视频', '/Home/Marvellous/video', 1, 4, 5, '0,5', 0, 2, 0),
(16, '北美', '/Home/Camp/northAmerica', 1, 2, 6, '0,6', 0, 1, 0),
(17, '欧洲', '/Home/Camp/europe', 1, 2, 6, '0,6', 0, 2, 0),
(18, '澳洲', '/Home/Camp/australia', 1, 2, 6, '0,6', 0, 3, 0),
(19, '亚洲', '/Home/Camp/asia', 1, 2, 6, '0,6', 0, 4, 0),
(20, '本季特色游学', '/Study/', 1, 5, 2, '0,2', 1, 1, 0),
(21, '体育类专题游学', '/Study', 1, 5, 2, '0,2', 1, 2, 0),
(22, '足球特长', '/Study', 1, 5, 21, '0,2,21', 0, 1, 0),
(23, '篮球特长', '/Study', 1, 5, 21, '0,2,21', 0, 3, 0),
(24, '艺术类专题游学', '/Study', 1, 1, 2, '0,2', 0, 3, 0),
(25, 'MBA', '/Study', 1, 5, 3, '0,3', 0, 1, 0),
(26, 'EMBA', '/Study', 1, 5, 3, '0,3', 0, 2, 0),
(27, '美国', '/Study', 1, 5, 3, '0,3', 0, 3, 0),
(28, '英国', '/Study', 1, 5, 3, '0,3', 0, 4, 0),
(29, '欧洲', '/Study', 1, 5, 3, '0,3', 0, 5, 0),
(30, '以色列', '/Study', 1, 5, 3, '0,3', 0, 6, 0),
(31, '美国', '/S', 1, 5, 4, '0,4', 0, 0, 0),
(32, '英国', '/Study', 1, 5, 4, '0,4', 0, 2, 0),
(33, '澳洲', '/Study', 1, 5, 4, '0,4', 0, 3, 0),
(34, '加拿大', '/Study', 1, 5, 4, '0,4', 0, 4, 0),
(35, '留学直通车', '/Study', 1, 5, 4, '0,4', 0, 5, 0);
Field | Type | Null | Key | Default | Extra |
-------------+--------------+------+-----+---------+----------------+
catid | int(4) | NO | PRI | NULL | auto_increment |
catname | varchar(255) | NO | | NULL | |
url | varchar(255) | NO | | NULL | |
type | tinyint(1) | NO | | 0 | |
modelid | tinyint(1) | NO | | 0 | |
parentid | int(4) | NO | | NULL | |
arrparentid | varchar(255) | NO | | NULL | |
issoncatid | tinyint(1) | NO | | 0 | |
listorder | int(4) | NO | | 0 | |
ismean | tinyint(1) | NO | | 1 | |
-------------+--------------+------+-----+---------+----------------+
thinkphp之无限分类的更多相关文章
- thinkphp 实现无限极分类
thinkphp实现无限极分类,获得所有的子类 今天学习测试了一上午也没有整出来,一开始一直没有办法把所有的子分类拿出来. 最后找到原因: 每次调用的时候没有在最后return的位置我没有选择retu ...
- ThinkPHP无限分类模块设计
public function catelist(){ $cate=D('Cate'); //var_dump($cate->gettree());exit; $cateres=$cate-&g ...
- 后台树状菜单,js实现递归无限分类
//新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")-& ...
- MySql无限分类数据结构--预排序遍历树算法
MySql无限分类数据结构--预排序遍历树算法 无限分类是我们开发中非常常见的应用,像论坛的的版块,CMS的类别,应用的地方特别多. 我们最常见最简单的方法就是在MySql里ID ,parentID, ...
- TreeView递归绑定无限分类数据
TreeView递归绑定无限分类数据 实现一个动态绑定,无限级分类数据时,需要将数据绑定到TreeView控件,分类表的结构是这样的: 字段 类型 Id int ParentId int Name N ...
- 关于无限分类的树状输出(id,name,pid)类型的
首先创建无限分类的数据表,我这里采用的是id.name.pid这种类型(当然还有很多种无限分类的方式了,比如:id.name.pid.path.left.right左右节点的形式) CREATE TA ...
- php递归方法实现无限分类实例
数组: 代码如下 复制代码 $items = array( array('id' => 1, 'pid' => 0, 'name' => '一级11' ), array('id' ...
- PHP+Mysql无限分类的方法汇总
无限分类是个老话题了,来看看PHP结合Mysql如何实现.第一种方法这种方法是很常见.很传统的一种,先看表结构表:categoryid int 主键,自增name varchar 分类名称pid in ...
- PHP全路径无限分类导航LINK代码实现
<?php /** * @param php全路径无限分类 */ include('db.inc.php'); function getPathCate($cateid){ $sql = &qu ...
随机推荐
- LPCTSTR的含义
LPCTSTR: LP代表指针.C代表不可改变.T代表根据是否定义UNICODE宏而分别define为char或wchar_t.STR代表字符串. 例如: LPCTSTR lp="BMP F ...
- Tensorflow学习笔记No.4.1
使用CNN卷积神经网络(1) 简单介绍CNN卷积神经网络的概念和原理. 已经了解的小伙伴可以跳转到Tensorflow学习笔记No.4.2学习如和用Tensorflow实现简单的卷积神经网络. 1.C ...
- CF724G 【Xor-matic Number of the Graph】
题目就不翻译了吧,应该写的很清楚了... 首先 \(,\) 不懂线性基的可以戳这里.知道了线性基\(,\) 但是从来没有写过线性基和图论相结合的\(,\) 可以戳这里. 好\(,\) 点完了这些前置技 ...
- devops-持续集成管理之SonarQube
1. devops-持续集成管理之SonarQube 1) 代码质量七宗罪 编码规范:是否遵守了编码规范,遵循了最佳实践. 潜在的BUG:可能在最坏情况下出现问题的代码,以及存在安全漏洞的代码. 文 ...
- Java安全之Javassist动态编程
Java安全之Javassist动态编程 0x00 前言 在调试CC2链前先来填补知识盲区,先来了解一下Javassist具体的作用.在CC2链会用到Javassist以及PriorityQueue来 ...
- 多测试讲解_009肖sirRF自动化框架安装教程
robot framework:自动化测试框架 Python3.7 RIDE(可视化界面). Wxpython pip(在线下载) . setuptools(在线安装) . 第三方库 第三方库:s ...
- CLion 控制台输出内容乱码问题的解决方法
问题再现 #include "stdio.h" #include "stdlib.h" int main() { printf("嘤嘤嘤") ...
- python post与get请求的区别
post:请求的url不带参数 查询参数在WebForms保存 get:请求的url会附带查询参数 查询参数在QueryString保存
- kafka-伪集群搭建
一.简介 Apache Kafka是一个快速.可扩展的.高吞吐的.可容错的分布式"发布-订阅"消息系统,使用Scala与Java语言编写,能够将消息从一个端点传递到另一个端点, ...
- redis集群搭建 不用ruby
redis 从5开始 可以直接用redis-cli命令创建集群了,不用那么麻烦 安装ruby环境 redis配置文件需要修改的地方 port 7000 cluster-enabled yes clus ...