这是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个 但是输出的时候显示好多遍

解决方案 »

  1.   

    SELECT Id,Title,ClassId FROM Subification where ClassId=2 ORDER BY Id Desc
    这一句应该是
    SELECT Id,Title,ClassId FROM Subification where ClassId='$rw[id]' ORDER BY Id Desc
    测试的时候忘改回来了 
      

  2.   

    $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=$rw["Id"] ORDER BY Id Desc";
    $Rsresult = mysql_query($RsQuery);
    $a=10;
    while(($rs = mysql_fetch_array($Rsresult)) && $a > 0){
    $Subification[$rw["Id"]][] = array("Id"=>substr($rs["Id"], 0, 40),"Title"=>mb_substr($rs["Title"], 0, 40,'utf-8'));
    $a--;}
    $i--;}在输出的时候你应该先找到属于主分类的子分类再遍历
      

  3.   

    <div id="ClassList">
    <{foreach from=$Classification item=Cloop}>
    <dl>
    <dt><a href="#"><{$Cloop.Title}></a></dt>
    <{foreach from=$Subification[$Cloop.Id] item=Sloop}>
    <dd><a href="#"><{$Sloop.Title}></a></dd>
    <{/foreach}>
    </dl>
    <{/foreach}>之所以没有人回答你是因为你的结贴率为0
      

  4.   

    RsQuery = "SELECT Id,Title,ClassId FROM Subification where ClassId=$rw["Id"] ORDER BY Id Desc";
    这个查询不就可以查出相应的主分类下的子分类吗