首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

PHP SMARTY 双循环(递归)输出分类 有关问题

2012-05-27 
PHP SMARTY 双循环(递归)输出分类 问题模版PHP code{foreach from$classlist itemnewsclass}DIV class

PHP SMARTY 双循环(递归)输出分类 问题
模版

PHP code
{foreach from=$classlist item=newsclass}    <DIV class="bg03"><a href="news.php?classid={$newsclass.id}&{if $newsclass.ispro eq 1}ispro=true{/if}" target="main">{$newsclass.classname}</a></DIV>{/foreach}


程序
PHP code
$sql = "select * from jh_newsclass where parentid = 0";$result = $mysqli->query($sql);while ($row = $result->fetch_row()) {    $classlist[] = array(        'id'=>$row[0],        'classname'=>$row[2],        'parentid'=>$row[1],        'ispro'=>$row[3],            );}$result->close();$mysqli->close();$smarty->assign('classlist',$classlist);$smarty->assign('webname',Webname);$smarty->display('admin/left.htm');



这样只能输出一级分类. 我需要在一级分类下再输出二级..三级..该怎么写呀? 


以前用ASP输出的效果
HTML code
              <DIV class="bg03">新闻专题</DIV><div class="forumlist_groups"><DIV align=left><ul><li class="forumli"><a href='news.asp?classid=3&newsclass=3' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">新闻动态</font></a></li><li class="forumli"><a href='news.asp?classid=6&newsclass=6' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">美大专题</font></a></li><li class="forumli"><a href='news.asp?classid=16&newsclass=16' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">月兔专题</font></a></li></ul></div></div>    <DIV class="bg03"><a href="news.asp?classid=14&newsclass=14" target="main">供求信息</a></DIV>              <DIV class="bg03">产品展示</DIV><div class="forumlist_groups"><DIV align=left><ul><li class="forumli"><a href='news.asp?classid=18&ispro=true&newsclass=18' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">美大灶具</font></a></li><li class="forumli"><a href='news.asp?classid=19&ispro=true&newsclass=19' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">月图厨柜</font></a></li><li class="forumli"><a href='news.asp?classid=20&ispro=true&newsclass=20' target='main'>+--<img id="folder180" src="images/leaf.gif" width="18" height="18" align="absmiddle"><font color="">集成效果</font></a></li></ul></div></div>



原来的ASP代码 
HTML code
<%dim strsSet Rs = server.CreateObject(JH_RS)sql = "select * from jh_newsclass where parentid = 0"Rs.Open SQL,Conn,1,1while not rs.eof%><%        set strs = conn.execute("select * from jh_newsclass where parentid = " & rs("id"))        if strs.eof and strs.bof then%>    <DIV class="bg03"><a href="news.php?classid=<%=rs("id")%>&newsclass=<%=rs("id")%><%if rs("ispro") then response.Write("&ispro=true")%>" target="main"><%=rs("classname")%></a></DIV><%        else%>              <DIV class="bg03"><%=rs("classname")%></DIV><%        end if%>        <%call showparentclass("+","--",rs("id"))%><%rs.movenextwendrs.closeset rs = nothing%><%sub showparentclass(astr,tree,parentid)    dim showparentclassrs,temprs    set showparentclassrs = conn.execute("select * from Jh_newsclass where parentid = " & parentid)    if showparentclassrs.eof then         exit sub    else    response.Write("<div class=""forumlist_groups""><DIV align=left><ul>")        while not showparentclassrs.eof            response.Write"<li class=""forumli"">"            set temprs = conn.execute("select * from Jh_newsclass where parentid = " & showparentclassrs("id"))            if temprs.eof and temprs.bof then                response.Write"<a href='news.php?classid="&showparentclassrs("id")                if showparentclassrs("ispro") then response.Write("&ispro=true")                response.Write"&newsclass="&showparentclassrs("id")&"' target='main'>" & astr & tree & "<img id=""folder180"" src=""images/leaf.gif"" width=""18"" height=""18"" align=""absmiddle""><font color="""">" & showparentclassrs("classname")&"</font></a>"            else                response.Write astr & tree & "<img id=""folder180"" src=""images/folderClosed.gif"" width=""18"" height=""18"" align=""absmiddle"">" & showparentclassrs("classname")            end if            set temprs = nothing            response.Write"</li>"            call showparentclass(astr,tree&"--",showparentclassrs("id"))        showparentclassrs.movenext        wend    response.Write("</ul></div></div>")    end ifend sub%> 





[解决办法]
或者用:
Example 7-16. section loop variable
例 7-16.loop 变量演示 

{* the loop variable only determines the number of times to loop.
 you can access any variable from the template within the section.
 This example assumes that $custid, $name and $address are all
 arrays containing the same number of values *}
{section name=customer loop=$custid}
id: {$custid[customer]}<br>
name: {$name[customer]}<br>
address: {$address[customer]}<br>
<p>
{/section}


OUTPUT:

id: 1000<br>
name: John Smith<br>
address: 253 N 45th<br>
<p>
id: 1001<br>
name: Jack Jones<br>
address: 417 Mulberry ln<br>
<p>
id: 1002<br>
name: Jane Munson<br>
address: 5605 apple st<br>
<p>
 

热点排行