我有分类和子类别。我想选择所有父类别&子类别。但希望在每个父类别下只显示3-4个子类别。
我的Php 代码
/******Start Categories********/
$ca=mysql_query('select * from category where parent_id=0');
while($ca1 = mysql_fetch_array($ca))
{
$ca2[]=$ca1;
}
$smarty->assign('ca2',$ca2);
/******End Categories********/
/******Start SubCategories********/
$sub=mysql_query('select * from category where parent_id!=0 ');
while($sub1 = mysql_fetch_array($sub))
{
$sub2[]=$sub1;
}
$smarty->assign('sub2',$sub2);
/******End SubCategories********/和Tpl 代码:
<div id="sub_ltcol">
{section name=loopc loop=$ca2}
<div id="gr_design">
<div id="gr_head">
<h4>{$ca2[loopc].category_name}</h4>
</div>
{section name=loops loop=$sub2}
{if $ca2[loopc].category_id eq $sub2[loops].parent_id}
<div id="gr_body">
<ul>
<li>
<div class="arw_icon"><img src="images/arw_icon.png"></div>
<a href="#">{$sub2[loops].category_name}</a>
</li>
<div class="dotted_line"></div>
</ul>
</div>{/if}
{/section}
</div>
{/section}
</div>我只想显示<li>标签3-4次.
发布于 2012-05-30 07:05:34
你可以试试
{section name=loops loop=$sub2}
{if $ca2[loopc].category_id eq $sub2[loops].parent_id AND $smarty.section.loops.iteration <= 4}
...
{/if}
{/section}发布于 2012-05-30 07:16:29
您可以使用此方法:
<div id="sub_ltcol">
{section name=loopc loop=$ca2}
<div id="gr_design">
<div id="gr_head">
<h4>{$ca2[loopc].category_name}</h4>
</div>
{section name=loops loop=$sub2}
{if $ca2[loopc].category_id eq $sub2[loops].parent_id}
{if $smarty.foreach.loops.index lte 3}
<div id="gr_body">
<ul>
<li>
<div class="arw_icon"><img src="images/arw_icon.png"></div>
<a href="#">{$sub2[loops].category_name}</a>
</li>
<div class="dotted_line"></div>
</ul>
</div>{/if}
{/if}
{/section}
</div>
{/section}
</div>发布于 2012-05-30 07:19:10
如果您只需要显示3个子类别,则只需从DB获取这些内容并显示出来。可以将极限属性用于相同的
/******Start SubCategories********/
$sub=mysql_query('select * from category where parent_id!=0 limit 3');它还有助于提高页面加载性能。
https://stackoverflow.com/questions/10811381
复制相似问题