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. Arduino 语法与函数

    Arduino programs can be divided in three main parts: structure, values (variables and constants), an ...

  2. 「DevOps 转型与实践」沙龙回顾第二讲

    背景介绍 本期分享内容为<平台化 DevOps-云计算与云原生模式下 DevOps 的建设实践>.目前,DevOps 越来越成为大家当前建设的热点,伴随着基础设施的转型和应用框架的转型,更 ...

  3. .NET Standard 版本支持

    系列目录     [已更新最新开发文章,点击查看详细] .NET标准已版本化.每个新版本都添加了更多的api.当库是针对某个.NET标准版本构建的时,它可以在实现该版本的.NET标准(或更高版本)的任 ...

  4. Github 太狠了,居然把 "master" 干掉了!

    前段时间栈长有看到 Github 和 master 分支变更的新闻,当时没有注意细节,直到今天我创建仓库时: 看了半天感觉有点不对劲啊... 怎么 master 不见了,之前默认主干分支名称都是叫 m ...

  5. c++ 西安交通大学 mooc 第十三周基础练习&第十三周编程作业

    做题记录 风影影,景色明明,淡淡云雾中,小鸟轻灵. c++的文件操作已经好玩起来了,不过掌握好控制结构显得更为重要了. 我这也不做啥题目分析了,直接就题干-代码. 总结--留着自己看 1. 流是指从一 ...

  6. devops-jenkins-Pipeline实战

    1) 配置gitlab的分支项目 点击红色标记的创建 project 项目 点击Create project创建Pipeline-demo项目 项目创建完成,然后我们创建一个Add README 然后 ...

  7. 好用的C语言编程软件!工具都没有,怎么用技术改变世界呢!

    好用的C语言编程软件 1.VS(Visual Studio)   VS(Visual Studio) VS是目前最流行的windows平台应用程序的集成开发环境,由于大部分同学使用的都是Windows ...

  8. EfCore3的OwnedType会导致Sql效率问题

    最近主导了旗下某核心项目升级到EfCore3 由于之前Core2升级时候也踩过不少的坑很多东西都有规划和准备,整体上还是没出太大问题 但是最近突然发现efcore对于使用了ownedType的生成语句 ...

  9. windows搭建SVN服务

    下载`TortoiseSVN 官网下载址:https://www.visualsvn.com/visualsvn/download/tortoisesvn/ 根据自己系统环境选择 安装Tortoise ...

  10. 使用AudioRecord录音

    虽然不知道头文件是咋回事,但是还是得到了一个MP3文件,音质也很清晰.AudioRecord是先把录制的声音保存为字节流文件,可以边保存边读取,头文件是把保存的字节流文件解析为音频格式. public ...