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 ...
随机推荐
- P5858 「SWTR-03」Golden Sword
题面: Link 题面有点长,不想粘了,QAQ. 题解: 一句话题意,你有 \(n\) 件物品需要依次放进去,每个物品放进去之后会得到一定的权值,为当前锅炉里面的物品的数量乘以 \(a_i\) 每次在 ...
- 《穷查理年鉴》习惯 & 工作 & 自省 & 自律 (关于自己)
习惯 001.在那充满古老年鉴的年代里,扔掉你的恶行,不管它们曾经给你带来多大的好处. 002.许多关于预言的争论都可以简化为:当你说是时,就有人说浊;当你认为不是时,一定有人说是. 003.坏习惯和 ...
- 0xctf[No parameters readfile](魔改版[GXYCTF2019]禁止套娃)
阅读本文前建议先阅读本站中的另一篇文章:[GXYCTF2019]禁止套娃 重要参考链接:http://www.heetian.com/info/827 Leon师傅魔改了[GXYCTF2019]禁止套 ...
- 扩展、接管MVC都不会,还会用Spring Boot?
持续原创输出,点击上方蓝字关注我 目录 前言 Spring Boot 版本 如何扩展MVC? 如何自定义一个拦截器? 什么都不配置为什么依然能运行MVC相关的功能? 如何全面接管MVC?[不推荐] 为 ...
- 【找规律】ARC 066D Xor Sum AtCoder - 2272
题目大意 给出一个整数\(n\),已知\(0\le u,v\le n\),求满足\(a\ xor\ b=u\)且\(a+b=v\)的\(a.b\)对数 样例1输入 3 样例1输出 5 /* u=0,v ...
- Windows Server 设置自动登陆
前言 Windows Server 相信很多人都在使用,但是系统每次登陆都比较麻烦,能否设置自动登陆呢?有兴趣一起来学习一下吧!的自动登陆方法也比较多,在此分享一个实用简单的,通过命令来设置" ...
- swoole热启动
通过扫描指定的要扫描的目录,把所有文件找出来,分别md5 连接字符串,最后再md5返回 启动定时器,扫描,当前的加密值和以前一样不管,否则就重启服务,把当前赋值给旧值 . httpServer.php ...
- 第三十四章 Linux常规练习题(一)参考答案
一.练习题一 1.超级用户(管理员用户)提示符是___#_,普通用户提示符是___$_. 2.linux关机重启的命令有哪些 ? 关机命令 重启命令 shutdown -h now shutdown ...
- 干掉hao123的第n+1种方法
最近看见我小弟无精打采的样子,问他怎么了,他说所有浏览器主页被hao123流氓劫持了,嚯,这回流氓碰同行--没辙. 我说这多大点事,百毒一下,以毒攻毒.于是便有了下面的这些方法: 适合小白: 第一种: ...
- MySQL设置慢查询
MySQL的慢查询日志是用来记录在MySQL中响应时间超过阀值的语句,则会被记录到慢查询日志中(运行时间超过long_query_time值的SQL语句): 慢查询相关参数: slow_query ...