PHP SMARTY 嵌套循环问题
这是PHP代码:$RwQuery="SELECTId,TitleFROMClassificationORDERBYRankDESC,IdDesc";$result=mys...
这是PHP代码:
$RwQuery = "SELECT Id,Title FROM Classification ORDER BY Rank DESC,Id Desc";
$result = mysql_query($RwQuery);
$i = 24;
while(($rw = mysql_fetch_array($result)) && $i > 0){
$Classification[] = array("Id"=>substr($rw["Id"], 0, 40),"Title"=>mb_substr($rw["Title"], 0, 40,'utf-8'));
$RsQuery = "SELECT Id,Title,ClassId FROM Subification where ClassId=2 ORDER BY Id Desc";
$Rsresult = mysql_query($RsQuery);
$a=10;
while(($rs = mysql_fetch_array($Rsresult)) && $a > 0){
$Subification[] = array("Id"=>substr($rs["Id"], 0, 40),"Title"=>mb_substr($rs["Title"], 0, 40,'utf-8'));
$a--;}
$i--;}
这是TPL代码:
<div id="ClassList">
<{foreach from=$Classification item=Cloop}>
<dl>
<dt><a href="#"><{$Cloop.Title}></a></dt>
<{foreach from=$Subification item=Sloop}>
<dd><a href="#"><{$Sloop.Title}></a></dd>
<{/foreach}>
</dl>
<{/foreach}>
循环出来的时候 主分类显示正常 子分类我限制显示前15个 但是输出的时候显示好多遍 展开
$RwQuery = "SELECT Id,Title FROM Classification ORDER BY Rank DESC,Id Desc";
$result = mysql_query($RwQuery);
$i = 24;
while(($rw = mysql_fetch_array($result)) && $i > 0){
$Classification[] = array("Id"=>substr($rw["Id"], 0, 40),"Title"=>mb_substr($rw["Title"], 0, 40,'utf-8'));
$RsQuery = "SELECT Id,Title,ClassId FROM Subification where ClassId=2 ORDER BY Id Desc";
$Rsresult = mysql_query($RsQuery);
$a=10;
while(($rs = mysql_fetch_array($Rsresult)) && $a > 0){
$Subification[] = array("Id"=>substr($rs["Id"], 0, 40),"Title"=>mb_substr($rs["Title"], 0, 40,'utf-8'));
$a--;}
$i--;}
这是TPL代码:
<div id="ClassList">
<{foreach from=$Classification item=Cloop}>
<dl>
<dt><a href="#"><{$Cloop.Title}></a></dt>
<{foreach from=$Subification item=Sloop}>
<dd><a href="#"><{$Sloop.Title}></a></dd>
<{/foreach}>
</dl>
<{/foreach}>
循环出来的时候 主分类显示正常 子分类我限制显示前15个 但是输出的时候显示好多遍 展开
3个回答
展开全部
是你数据组和写法不对.
把子分类组织成数组,作为主分类的一个元素.结构类似这样的.
array(array('title'=>'大分类一','Sloop'=>array('title'=>'子分类一')))
我习惯用section,所以用section给你举例子.
{section name=t1 loop=$Cloop}
<dl>
<dt><a href="#"><{$Cloop[t1].Title}></a></dt>//大分类的标题
{section name=t2 loop=$Cloop[t1].Sloop}//处理大分类下的小分类,sloop是一个数组.
<dd><a href="#"><{$Cloop[t1].Sloop[t2].Title}></a></dd>
{/section}
<dl>
{/section}
把子分类组织成数组,作为主分类的一个元素.结构类似这样的.
array(array('title'=>'大分类一','Sloop'=>array('title'=>'子分类一')))
我习惯用section,所以用section给你举例子.
{section name=t1 loop=$Cloop}
<dl>
<dt><a href="#"><{$Cloop[t1].Title}></a></dt>//大分类的标题
{section name=t2 loop=$Cloop[t1].Sloop}//处理大分类下的小分类,sloop是一个数组.
<dd><a href="#"><{$Cloop[t1].Sloop[t2].Title}></a></dd>
{/section}
<dl>
{/section}
展开全部
当然出来好多遍了,你一直用$Subification[] = 这不就是一直在给数组加数据呢吗,再说了,你也没对应主分类啊,
$Subification = array();
while(($rs = mysql_fetch_array($Rsresult)) && $a > 0){
这样写 就不会那么多数据了 ,不过这样也没有对应上主分类,而用的都是同一个子分类, 你 要嵌套也需要和主分类对应上, 可以用主分类的数组来包含 这个子类
$Subification = array();
while(($rs = mysql_fetch_array($Rsresult)) && $a > 0){
这样写 就不会那么多数据了 ,不过这样也没有对应上主分类,而用的都是同一个子分类, 你 要嵌套也需要和主分类对应上, 可以用主分类的数组来包含 这个子类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在 <foreach> 设置一个 key=k 这个是 数组的键值 然后 在下面判断 <if k>15></if> 上面有个回答者用 <section> 来循环 个人觉得还是 <foreach> 好...如果是多维数组的话 就能体现到 foreach 的好处了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询