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. opencv的imread函数相对路径问题和 main 参数问题

    参考: https://blog.csdn.net/u013404374/article/details/80178822 https://blog.csdn.net/fujilove/article ...

  2. K8S-kubeadm-集群证书续签

    ETCD证书 自签证书颁发机构(CA) ca.crt ca.key etcd集群中相互通信事业的客户端证书 peer.crt peer.key pod中定义Liveness探针事业的客户端证书 hea ...

  3. 在Windows7中打开照片,提示“Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足。....”

    在Windows7中打开照片,提示"Windows 照片查看器无法显示此图片,因为计算机上的可用内存可能不足.请关闭一些目前没有使用的程序或者释放部分硬盘空间(如果硬盘几乎已满),然后重试. ...

  4. 学习WebDav

    目录 前言 初识WebDav 有哪些支持webdav的网盘? WebDAV的特性和优势 服务端的搭建 调用WebDav接口 PROPFIND方法 PROPPATCH方法 MKCOL方法 PUT方法 G ...

  5. 《流畅的Python》第三部分 把函数视作对象 【一等函数】【使用一等函数实现设计模式】【函数装饰器和闭包】

    第三部分 第5章 一等函数 一等对象 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传递给函数 能作为函数的返回结果 在Python中,所有函数都是一等对象 函数是对象 函数本身是 func ...

  6. 2014年 实验四 B2B模拟实验(二)

    [实验目的] ⑴.熟悉电子合同签订过程 ⑵.掌握网上招标的流程并体会招标对采购商带来的好处 [实验条件] ⑴.个人计算机一台 ⑵.计算机通过局域网形式接入互联网 ⑶.电子商务模拟实验室软件包. [知识 ...

  7. AT一万亿港元市值之差,腾讯和阿里到底“差”在哪里?

    很少有人注意到,港股之王已经悄然易主. 2019年底,阿里巴巴赴港二次上市,中国两大互联网巨头终于有了统一的比较口径,同台竞技之下,我们发现一个惊人事实--截止9月5日,港股阿里巴巴市值5.9万亿港元 ...

  8. redis集群搭建 不用ruby

    redis 从5开始 可以直接用redis-cli命令创建集群了,不用那么麻烦 安装ruby环境 redis配置文件需要修改的地方 port 7000 cluster-enabled yes clus ...

  9. spring boot:actuator的安全配置:使用spring security做ip地址限制(spring boot 2.3.2)

    一,actuator有哪些环节要做安全配置? actuator是应用广泛的监控工具, 但在生产环境中使用时,需要做严格的安全保障, 避免造成信息泄露等严重的安全问题 actuator可以采取的安全措施 ...

  10. centos8平台使用ip命令代替ifconfig管理网络

    一,为什么建议使用ip命令代替ifconfig? 1,ifconfig所属的net-tools包已经不再被维护了 虽然可以用,但会发生看不到部分ip等情况, [root@centos8 liuhong ...