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程序设计有所帮助。

(0)

相关推荐

  • 解析smarty模板中类似for的功能实现

    1. 功能说明,在页面使用smarty循环100次输出,类似for循环100次{section name=total loop=100}{$smarty.section.total.index+1} //当前的索引{$smarty.section.total.iteration} //用于显示循环的次数{/section} {assign var=i value=0}{section name=total loop=100}{assign var=i value=$i+1} {$i}     /

  • smarty高级特性之对象的使用方法

    本文实例讲述了smarty高级特性之对象的使用方法.分享给大家供大家参考,具体如下: <?php include_once('smarty.inc.php'); class Dog{ public $name; public function sayHello(){ echo 'hello'; } } $dog1=new Dog(); $dog1->name="first dog"; $smarty->assign("dog",$dog1); $s

  • php实现smarty模板无限极分类的方法

    本文实例讲述了php实现smarty模板无限极分类的方法.分享给大家供大家参考,具体如下: <?php $conn = mysql_connect("localhost","admin","admin"); mysql_select_db("people_shop",$conn); mysql_query("SET NAMES 'UTF-8'"); $class_arr=array(); $sql =

  • smarty+adodb+部分自定义类的php开发模式

    前几天把热网的后台基本弄好,腾出时间对工作总结了一下.   在设计模式上,我尝试着使用mvc模式的开发.用smarty控制显示,用case语句控制各种action,然后写好各种模块的class给action调用.这样做的确对代码的控制强了一点,比如在class.message.php中写上getAllMsg()函数,那么这个函数就可以被许多action调用.再配上分页类.在对数据的处理上还算灵活.   复制代码 代码如下: $db=new Db;   $sql="select * from co

  • 专为新手写的结合smarty的类第1/3页

    专为新手写的结合smarty的类,诚挚邀请大家多提宝贵意见 这个是为新手(也为自己)写的结合smarty一起使用的类,是未完成的,现在放出来的目的不是马上让新手使用,所以也没有把注解写的非常详细 希望各位高手多多提意见,我尽量完善它.     首先声明,我写这个的目的也是为了锻炼自己,尽管我知道现在已经有很多类似的类了,但是我还是决定来写一个, 所以请大家在浏览的时候口下留情. 还有文件我也已经打包上传了,放在下面,请大家多多下载,多多提意见.有什么问题直接Q我 目前该类包括以下功能(使用范例,

  • 如何在smarty中增加类似foreach的功能自动加载数据

    在smarty中使用自定义插件来加载数据(见:编写Smarty插件在模板中直接加载数据的详细介绍),在使用的时候还是感觉不够方便,灵机一动就想写成类似foreach那种标签: 第一步:在Smarty_Compiler.class.php的_compile_tag函数中增加: 复制代码 代码如下: //加载数据的开始标签case 'load': $this->_push_tag('load'); return $this->_complie_load_start($tag_args); brea

  • 方便实用的PHP生成静态页面类(非smarty)第1/2页

    复制代码 代码如下: /*********************/ /* */ /* Version : 5.2.5 */ /* Author : liqiangwork#sohu.com */ /* QQ : 570937581 */ /* */ /*********************/ //-----------------------------生成静态的类------------------------------- class Makehtml{ public $MbUrl,$

  • smarty实现多级分类的方法

    本文实例讲述了smarty实现多级分类的方法.分享给大家供大家参考.具体分析如下: 这里简单的介绍一下利用php smarty 多级分类读出与循环方法,单循环很简单,但是多级就要复杂一点,下面我们来看看,感兴趣的朋友可以看来一下: 复制代码 代码如下: <?php $result=mysql_query("SELECT id,description,parent_id,name,sort_order FROM article_categoey WHERE parent_id=0 order

  • PHP实现多级分类生成树的方法示例

    本文实例讲述了PHP实现多级分类生成树的方法.分享给大家供大家参考,具体如下: 条件,数据库里分类是按id,fid(父ID)实现多级分类的! 使用方法: $sql ="XXXXXXXXXX"; //sql语句 $res = $db->Select($sql); //执行sql $list=array(); treeList(treeGet($res),$list); /生成树 print_r($res); //打印出来看看! 使用结果: ┣推荐新闻啊 ┃┣国际新闻 ┃┣dffff

  • php递归实现无限分类的方法

    本文实例讲述了php递归实现无限分类的方法.分享给大家供大家参考.具体如下: <?php $rows = array( array( 'id' => 1, 'name' => 'dev', 'parentid' => 0 ), array( 'id' => 2, 'name' => 'php', 'parentid' => 1 ), array( 'id' => 3, 'name' => 'smarty', 'parentid' => 2 ),

  • smarty中js的调用方法示例

    本文实例讲述了smarty中js的调用方法,分享给大家供大家参考.具体方法分析如下: 一.问题: 有时候,在smarty中,包含js的时候,整个页面就不会显示,而程序员往往在页面中找错误,程序页面,模板页面检查了多次都没有错误,就很郁闷了. 二.解决办法: 把模板页面中的js代码拷贝出来放在新建的js文件中,然后在包含到模板页面里面,如: 复制代码 代码如下: {popup_init src="css/commen.js"} 这样一来,问题就解决了. 希望本文所述对大家的PHP程序设计

  • Smarty中调用FCKeditor的方法

    本文实例讲述了Smarty中调用FCKeditor的方法,分享给大家供大家参考.具体实现方法如下: FCKeditor是目前互联网上最好的在线编辑器. smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序 员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要. 在Smarty中调用FCKeditor的文件: 复制代码 代码如下: requ

  • PHP简单实现无限级分类的方法

    本文实例讲述了PHP简单实现无限级分类的方法.分享给大家供大家参考,具体如下: 数据库结构: CREATE TABLE IF NOT EXISTS `city` ( `id` int(11) NOT NULL auto_increment, `name` varchar(30) character set utf8 collate utf8_unicode_ci NOT NULL default '0', `parentId` int(11) NOT NULL default '0' PRIMA

  • destoon实现调用当前栏目分类及子分类和三级分类的方法

    调用当前栏目分类及子分类和三级分类是程序设计里常用的方法,本文就来详细讲述destoon实现调用当前栏目分类及子分类和三级分类的方法.具体操作如下: 在destoon中提供了如下的调用语句: 一级分类名: {$m[catname]} 二级分类名: {$c[catname]} 三级分类名: {$b[catname]} 具体调用示例如下: 一.直接调用分类名称和链接: {loop $maincat $i $m}<dl> {php $child = get_maincat($maincat, $CA

  • smarty简单分页的实现方法

    本文实例讲述了smarty简单分页的实现方法,分享给大家供大家参考.具体实现方法如下: 以下是模板中的smarty代码,用smarty简单的代入相关的变量就行了,非常简单,但是在php代码中还要传入page这个参数.我觉得这样分挺好,非常简单.我越来越喜欢用smarty了.   Php代码如下: 复制代码 代码如下: {if $pageCount > 1}  {foreach  item=i from=$pagerList}    {if $pageNum eq $i}    {$i}     

  • php创建多级目录的方法

    本文实例讲述了php创建多级目录的方法.分享给大家供大家参考.具体实现方法如下: <?php /* 写出一个能创建多级目录的PHP函数 */ function createdirlist($path,$mode){ if (is_dir($path)){ //判断目录存在否,存在不创建 echo "目录'" . $path . "'已经存在"; //已经存在则输入路径 }else{ //不存在则创建目录 $re=mkdir($path,$mode,true);

随机推荐