PHP SMARTY 双循环(递归)输出分类 问题
模版
{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} ;
程序
$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输出的效果
<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代码
<%
dim strs
Set Rs = server.CreateObject(JH_RS)
sql = "select * from jh_newsclass where parentid = 0"
Rs.Open SQL,Conn,1,1
while 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.movenext
wend
rs.close
set 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 if
end sub
%> ;