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

yipeiwu_com6年前PHP代码库
二级分类的数据表结构如下:


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获取对象属性的三种方法实例分析

本文实例讲述了PHP获取对象属性的三种方法。分享给大家供大家参考,具体如下: 今天查看yii源码,发现yii\base\Model中的attribute()方法是通过反射获取对象的pub...

php定时计划任务的实现方法详解

我在uchome 中 分析到, uchome是这样做的1. 把所有的计划任务存放到数据库2. 每次用户进行操作或打开页面的时候都按排序执行一条计划任务. 也就是轮番判断,时间到了的, 就...

php进程daemon化的正确实现方法

前言 daemon 音标 : [‘di:mən] , 中文含义为守护神或精灵的意思 . 其实它还有个意思 : 守护进程 . Daemon程序是一直运行的服务端程序,又称为守护...

PHP设计模式之单例模式定义与用法分析

本文实例分析了PHP设计模式之单例模式。分享给大家供大家参考,具体如下: 单例模式(Singleton Pattern 单件模式或单元素模式),是常见的一种设计模式,它有三个特点...

大家都应该掌握的PHP关联数组使用技巧

在使用 PHP 进行开发的过程中,或早或晚,您会需要创建许多相似的变量,这时候你可以把数据作为元素存储在数组中。数组中的元素都有自己的 ID,因此可以方便地访问它们。 关联数组 关联数组...