pcat.php:
<?php
require_once "ext/include/smarty_config.php";
$query="select cat_id,parent_id,cat_name from sdb_goods_cat where disabled='false' and parent_id=0 order by p_order asc,cat_id asc";//产品一级分类
$result=mysql_query($query);
while($row=mysql_fetch_array($result))
{
$cat1=$row['cat_id'];
$query2="select cat_id,parent_id,cat_name from sdb_goods_cat where disabled='false' and parent_id='$cat1' order by p_order asc,cat_id asc";//产品二级分类
$result2=mysql_query($query2);
while($row2=mysql_fetch_array($result2))
{
$cat2=$row2['cat_id'];
$query3="select cat_id,parent_id,cat_name from sdb_goods_cat where disabled='false' and parent_id='$cat2' order by p_order asc,cat_id asc";//产品三级分类
$result3=mysql_query($query3);
while($row3=mysql_fetch_array($result3))
{
//$array_procat3[]=array($row3['cat_id'],$row3['parent_id'],$row3['cat_name']);
$array_procat3[]=array('cat_id'=>$row3['cat_id'],
'parent_id'=>$row3['parent_id'],
'cat_name'=>$row3['cat_name']
);
}
//$array_procat2[]=array($row2['cat_id'],$row2['parent_id'],$row2['cat_name'],$array_procat3);
$array_procat2[]=array('cat_id'=>$row2['cat_id'],
'parent_id'=>$row2['parent_id'],
'cat_name'=>$row2['cat_name'],
'pcat'=>$array_procat3
);
unset($array_procat3); //在使用完后要注销,因为使用赋值语句对数组进行赋值时不会将它清空,而是将新数组作为它的一个元素增加,为了不产生副作用,这里使用unset()是必需的。如果不注销,第二次循环的结果会包含第一循环的数据,如分类2的文章跑到分类1中来。
}
//$array_procat[]=array($row['cat_id'],$row['parent_id'],$row['cat_name'],$array_procat2);
$array_procat[]=array('cat_id'=>$row['cat_id'],
'parent_id'=>$row['parent_id'],
'cat_name'=>$row['cat_name'],
'pcat'=>$array_procat2
);
unset($array_procat2);
}
//print_r($array_procat);exit;
$smarty->assign("array_procat",$array_procat);
$smarty->display("pcat.tpl");
?>
pcat.tpl:
<div><{section name=loop1 loop=$array_procat}>
<div>
<div><{$array_procat[loop1].cat_name}></div>
<{section name=loop2 loop=$array_procat[loop1].pcat}>
<div style="padding-left:50px;"><{$array_procat[loop1].pcat[loop2].cat_name}></div>
<{section name=loop3 loop=$array_procat[loop1].pcat[loop2].pcat}>
<div style="padding-left:100px;"><{$array_procat[loop1].pcat[loop2].pcat[loop3].cat_name}></div>
<{/section}>
<{/section}>
</div>
<{/section}>
</div>