当前位置:Gxlcms > PHP教程 > PHPSMARTY双循环(递归)输出分类有关问题

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

时间:2021-07-01 10:21:17 帮助过:17人阅读

PHP SMARTY 双循环(递归)输出分类 问题
模版
PHP code
{foreach from=$classlist item=newsclass}
    {$newsclass.classname}
{/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
              新闻专题
  • +--新闻动态
  • +--美大专题
  • +--月兔专题
供求信息 产品展示
  • +--美大灶具
  • +--月图厨柜
  • +--集成效果



原来的ASP代码
HTML code




<%
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
%>

    &newsclass=<%=rs("id")%><%if rs("ispro") then response.Write("&ispro=true")%>" target="main"><%=rs("classname")%>
<%
        else
%>
              <%=rs("classname")%>
<%
        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("
    ") while not showparentclassrs.eof response.Write"
  • " set temprs = conn.execute("select * from Jh_newsclass where parentid = " & showparentclassrs("id")) if temprs.eof and temprs.bof then response.Write"" & astr & tree & "" & showparentclassrs("classname")&"" else response.Write astr & tree & "" & showparentclassrs("classname") end if set temprs = nothing response.Write"
  • " call showparentclass(astr,tree&"--",showparentclassrs("id")) showparentclassrs.movenext wend response.Write("
") end if end sub %>

人气教程排行