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之无限分类的更多相关文章

  1. thinkphp 实现无限极分类

    thinkphp实现无限极分类,获得所有的子类 今天学习测试了一上午也没有整出来,一开始一直没有办法把所有的子分类拿出来. 最后找到原因: 每次调用的时候没有在最后return的位置我没有选择retu ...

  2. ThinkPHP无限分类模块设计

    public function catelist(){ $cate=D('Cate'); //var_dump($cate->gettree());exit; $cateres=$cate-&g ...

  3. 后台树状菜单,js实现递归无限分类

    //新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")-& ...

  4. MySql无限分类数据结构--预排序遍历树算法

    MySql无限分类数据结构--预排序遍历树算法 无限分类是我们开发中非常常见的应用,像论坛的的版块,CMS的类别,应用的地方特别多. 我们最常见最简单的方法就是在MySql里ID ,parentID, ...

  5. TreeView递归绑定无限分类数据

    TreeView递归绑定无限分类数据 实现一个动态绑定,无限级分类数据时,需要将数据绑定到TreeView控件,分类表的结构是这样的: 字段 类型 Id int ParentId int Name N ...

  6. 关于无限分类的树状输出(id,name,pid)类型的

    首先创建无限分类的数据表,我这里采用的是id.name.pid这种类型(当然还有很多种无限分类的方式了,比如:id.name.pid.path.left.right左右节点的形式) CREATE TA ...

  7. php递归方法实现无限分类实例

    数组:  代码如下 复制代码 $items = array( array('id' => 1, 'pid' => 0, 'name' => '一级11' ), array('id' ...

  8. PHP+Mysql无限分类的方法汇总

    无限分类是个老话题了,来看看PHP结合Mysql如何实现.第一种方法这种方法是很常见.很传统的一种,先看表结构表:categoryid int 主键,自增name varchar 分类名称pid in ...

  9. PHP全路径无限分类导航LINK代码实现

    <?php /** * @param php全路径无限分类 */ include('db.inc.php'); function getPathCate($cateid){ $sql = &qu ...

随机推荐

  1. TCP/IP 寻址

    原文:TCP/IP 寻址 第一节:TCP/IP 简介 第二节:TCP/IP 寻址 第三节:TCP/IP 协议 第四节:TCP/IP 邮件 TCP/IP 使用 32 个比特(bit)或者 4 个 0 到 ...

  2. .NET Standard 简介

    系列目录     [已更新最新开发文章,点击查看详细] .NET Standard 是一套正式的 .NET API 规范,有望在所有 .NET 实现中推出. 推出 .NET Standard 的背后动 ...

  3. Windows Server 2003 蓝屏 -- 系统故障:停止错误

    Windows Server 2003  EE 出现蓝屏: 0X0000004D (0X000f27D9, 0X000F27D9, 0X0000000C, 0X00000000) 蓝屏拍照: 重启机器 ...

  4. mysql字段大小写敏感设置

    mysql中varchar类型的字符集一般设置成utf8,然而mysql默认是对大小写不敏感(不区分),如果想要mysql区分大小写需要设置排序规则,规则详解如下:在mysql中存在着各种排序规则:1 ...

  5. JavaScript常用对象介绍

    目录 对象(object) 对象的创建方式 点语法 括号表示法 内置对象 Array 数组创建方式 检测数组 转换方法 分割字符串 栈方法 队列方法 重排序方法 操作方法 位置方法 迭代方法 Stri ...

  6. 搭建ipse隧道

    我没有太多的物理服务器,实验环境只能用四台装了linux的虚拟机来模拟,用户层工具是openswan.大致拓扑如下(我有点懒,公网地址我用的194.168.10.0/24,别和192.168.xx.x ...

  7. 用Docker容器安装Jenkins

    先安装Docker 可以参考我的上一篇文章 链接 拉取Jenkins最新镜像,可跟版本号 不跟默认拉取最新镜像 docker pull jenkins/jenkins 创建JenKins的工作目录 m ...

  8. MeteoInfoLab脚本示例:TRMM 3B43 HDF数据

    TRMM 3B43是卫星观测月平均降水量产品,是HDF的格点数据.需要注意的是数据中降水变量维的顺序里经度维在前纬度维在后,这与通常的设置(纬度维在前经度维在后)相反,需要对获取的二维数组进行转置,使 ...

  9. 【矩阵乘优化DP】涂色游戏

    题目大意 用 \(p\) 种颜色填 \(n\times m\) 的画板,要求任意相邻两列的颜色数都不少于 \(q\) ,求方案数. 数据范围 \(1\leq n\leq 100,1\leq m\leq ...

  10. beego log

    package main import ( "github.com/astaxie/beego/logs" _ "xcms/routers" _ "x ...