php smarty 二级分类代码和模版循环例子


Posted in PHP onJune 01, 2011

二级分类的数据表结构如下:

php smarty 二级分类代码和模版循环例子

PHP代码如下 
/** 
@ 文章分类 含二级分类 
@ param int $rootnum -- 一级分类数量 
@ param int $childnum -- 二级分类数量 
@ 返回值 array 
@ date 2011.2.24 
*/ 
function temp_articletreecate($rootnum,$childnum){ 
if(!isnumber($rootnum)){ 
$rootnum = 10; 
} 
if(!isnumber($childnum)){ 
$childnum = 10; 
} 
$category = array(); 
$parent_sql = "SELECT cateid,catename FROM ".TABLE_PREFIX."articlecate WHERE parentid=0 AND depth=0 AND flag=1 ORDER BY orders ASC"; 
if(intval($rootnum)>0){ 
$parent_sql.=" LIMIT $rootnum"; 
} 
$parent_cate = $GLOBALS['db']->getall($parent_sql); 
foreach($parent_cate as $parent_key => $parent_value){ 
//子类数组名为 childcategory 根据情况自定义名称 
$category[] = array('cateid'=>$parent_value['cateid'],'catename'=>$parent_value['catename'],'childcategory'=>array()); 
//读取子类 
$child_sql = "SELECT cateid,catename FROM ".TABLE_PREFIX."articlecate WHERE parentid=".$parent_value['cateid']." AND flag=1 ORDER BY orders ASC"; 
if(intval($childnum)>0){ 
$child_sql.=" LIMIT $childnum"; 
} 
$child_cate = $GLOBALS['db']->getall($child_sql); 
foreach($child_cate as $child_key => $child_value){ 
$category[count($category)-1]['childcategory'][] = array('cateid'=>$child_value['cateid'],'catename'=>$child_value['catename']); 
} 
} 
return $category; 
}

PHP页面调用分类,如index.php
$goodscatetree = array();
$goodscatetree = temp_goodstreecate(4,0); //调用分类函数(含二级分类)4--表示一级分类只显示4个,0--表示二级分类不限数量
$tpl>assign("goodscatetree",$goodscatetree); //执行smarty引擎
$tpl->display->(index.tpl); //输出smarty模版页面

TPL模版页面输出分类,如index.tpl页面
{section name=p loop=$goodscatetree}
一级分类:{$goodscatetree[p].catename}
{section name=c loop=$goodscatetree[p].childcategory}
二级分类:{$goodscatetree[p].childcategory[c].catename}
{/section}
{/section}

PHP 相关文章推荐
第十五节--Zend引擎的发展
Nov 16 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
PHP关联链接常用代码
Nov 05 PHP
php中error与exception的区别及应用
Jul 28 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
Nov 10 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 PHP
比较完整的微信开发php代码
Aug 02 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 PHP
PHP实现负载均衡session共享redis缓存操作示例
Aug 22 PHP
浅谈PHP5.6 与 PHP7.0 区别
Oct 09 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 PHP
PHP 八种基本的数据类型小结
Jun 01 #PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 #PHP
php自动获取字符串编码函数mb_detect_encoding
May 31 #PHP
比较时间段一与时间段二是否有交集的php函数
May 31 #PHP
实用PHP会员权限控制实现原理分析
May 29 #PHP
允许phpmyadmin空密码登录的配置方法
May 29 #PHP
php统计文件大小,以GB、MB、KB、B输出
May 29 #PHP
You might like
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
Laravel关系模型指定条件查询方法
2019/10/10 PHP
Prototype Number对象 学习
2009/07/19 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
jQuery创建插件的代码分析
2011/04/14 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
jQuery模拟爆炸倒计时功能实例代码
2017/08/21 jQuery
vue注册组件的几种方式总结
2018/03/08 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
python 常用的基础函数
2018/07/10 Python
python 制作自定义包并安装到系统目录的方法
2018/10/27 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
介绍一下RMI的基本概念
2016/12/17 面试题
幸福家庭事迹材料
2014/02/03 职场文书
高级编程求职信模板
2014/02/16 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
保险内勤岗位职责
2014/04/05 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
庐山导游词
2015/02/03 职场文书
css弧边选项卡的项目实践
2023/05/07 HTML / CSS