(转)smarty实现多级分类的方法

--http://www.aspku.com/kaifa/php/44679.html

这篇文章主要介绍了smarty实现多级分类的方法,涉及循环读取的技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了smarty实现多级分类的方法。分享给大家供大家参考。具体分析如下:

这里简单的介绍一下利用php smarty 多级分类读出与循环方法,单循环很简单,但是多级就要复杂一点,下面我们来看看,感兴趣的朋友可以看来一下:

复制代码代码如下:

<?php
$result=mysql_query("SELECT id,description,parent_id,name,sort_order FROM article_categoey WHERE parent_id=0 order by id");
while ($row = mysql_fetch_array($result)){
$class[]=$row;
//$row[‘id‘]是分类id,parent_id是子分类所属id
$result_sub=mysql_query("SELECT id,description,parent_id,name,sort_order FROM article_categoey WHERE parent_id=‘".$row[‘id‘]."‘ order by id");
while ($row_sub = mysql_fetch_array($result_sub)) {
$subclass[]=$row_sub;
}
$smarty->assign("subclass", $subclass);
}
$smarty->assign("class", $class);
$smarty->display(‘articles.html‘);
?>

HTML 代码如下:

复制代码代码如下:

<ul>
{foreach name=cat from=$class item=cat}
<li><strong>{$cat.name}</strong>[{$cat.id}]</li>
<ul style="padding-left:20px;">
{foreach name=subcat from=$subclass item=subcat}
{if $subcat.parent_id==$cat.id}
<li>{$subcat.name}[{$subcat.parent_id}]</li>
{/if}
{/foreach}
</ul>
{/foreach}
</ul>

运行结果如下图所示:

希望本文所述对大家的PHP程序设计有所帮助。

时间: 2024-07-29 12:37:11

(转)smarty实现多级分类的方法的相关文章

SQL处理多级分类,查询结果呈树形结构

对于多级分类常规的处理方法,很多程序员可能是用程序先读取一级分类记录,然后通过一级分类循环读取下面的子分类 这样处理的弊端是:如果数据量大,子分类很多,达到4级以上,这方法处理极端占用数据库连接池 对性能影响很大. 如果用SQL下面的CTE递归处理的话,一次性就能把结果给查询出来,而且性能很不错 比用程序处理(数据量很大的情况),临时表性能更好,更方便 with area as(select *,id px,cast(id as nvarchar(4000)) px2 from region w

关于多级分类的封装

现在在公司用到了关于多级分类的菜单树,关于封装成树形结构传给前端,下面提供几个方式: 1:传统封装:每一级循环一次得到该子类 @Override public List<Map<String, Object>> getCatalist(Integer sch_id) { //得到一级导航 List<Map<String, Object>> list = courseDao.getCatalist(sch_id,0); //循环一级分类 for(Map<

大量多级分类数据的获取、缓存、搜索查询 怎么设计最快 ?

1.数据量大2.多级分类3.首先要获取所有数据4.获取到所有数据后 有搜索功能(搜索到的数据不管几级都要获取到它的所有父级和子级 存在和搜索名称相符合的标为红色) 现在我为了开始获取全部数据和后期搜索都用一个方法 我就获取到所有分类id和其父级子集放在一起 然后比如现在不是搜索 开始是全部数据肯定很多重复的 我去重 然后通过这些id去获取所有信息 最后再循环改变搜索相符的字体颜色(和搜索公用) 最后再循环组合成树状结构数据 因为数据量大的话 老循环我感觉可能会慢 怎么优化下 搜索和初始化所有数据

PHPTree——快速生成无限多级分类

在开发中经常需要用到树形数据,比如无限多级分类,就是典型的树形结构.这里面的算法,用到了递归思想,为了简化开发过程,我编写了一个工具来提升开发效率, 它就是PHPTree. git地址:https://git.oschina.net/jiusem/PHPTree.git 使用方法: <?php  require('PHPTree.class.php'); //原始数据, 从数据库读出 $data = array( array( 'id'=>1, 'name'=>'book', 'pare

SQLite中使用CTE巧解多级分类的级联查询

在最近的活字格项目中使用ActiveReports报表设计器设计一个报表模板时,遇到一个多级分类的难题:需要将某个部门所有销售及下属部门的销售金额汇总,因为下属级别的层次不确定,所以靠拼接子查询的方式显然是不能满足要求,经过一番实验,利用了CTE(Common Table Expression)很轻松解决了这个问题! 举例:有如下的部门表 以及员工表 如果想查询所有西北区的员工(包含西北.西安.兰州),如下图所示: 如何用CTE的方式实现呢? Talk is cheap. Show me the

PHP通过传引用的思想实现无限分类的方法

在我的Simpla中,用到了无限分类,使用了PHP的传引用思想实现无限分类的方法,可以完美展示类似这样的分类模式. 具体实现代码如下:如有错误或者更好的方法,希望可以相互交流. id   pid   name 1    0     四川 2    0     重庆 3    1     成都 4    1     绵阳 5    3     高新区 /**      * 数组变成无限级分类--传引用思想      * @param array $items      * @return arra

EXCEL中多级分类汇总空白字段填充

使用场景,多级分类汇总后,在汇总的字段中显示空白,这样对我们直接取值做表带来十分不更(假像有5000条记录,1000条汇总项) 相关技术,INDIRECT函数,单元格定位功能. 在数据区域外任意一个单元格编辑好INDIRECT函数,=INDIRECT(ADDRESS(ROW()-1,COLUMN(),4)),如下图 先选择好上面编辑好函数的单元格,并复制,接下来选择好需要填充的空白字段,再时行定位操作,如下图          选择好空白单元格后,直接按下ctrl+v,如下图完工. 效果图

数据库多级分类代码(MSSQL存储过程版)

说明 相信多级分类在任何一个信息系统中都会用到,网上也能找到很多版本,下面这个是基于MSSQL存储过程版的, 手上还有VB跟C#版的,不过这几年数据库一直用MSSQL,编程语言却从VBScript到C#又到PB, 搞到现在这套分类代码分别用VB.C#.PB实现了一遍,浪费了不少时间,NND神马多数据库啊!!!哥被忽悠了. 分类采用前缀编码的方式,编码使用字符串类型的,当然也有使用二进制实现的牛人^_^. 表结构说明(表Category,ClassId,ClassName,Code 为分类相关字段

Select显示多级分类列表

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>在下拉列表中显示的多级树形菜单</t