组合模式,我发个代码给你看下. 无非就一个递归,其实没什么大不了的 <?php class node{ var $name; function node($name){ $this->name=$name; } function remove(){} function add(){} function display(){} function dispaly_($depth){ $i=0; while($i<$depth){ echo " "; $i++; } echo $this->name."<br>"; } } class leaf extends node{ function leaf($name) { parent::node($name); } function remove(){ echo "leaf remove error!"; } function add(){ echo "leaf add error!"; } function display($depth){ $this->dispaly_($depth); } }class anode extends node{ var $children=array(); function anode($name){ parent::node($name); }
function remove(){ echo "anode can't remove!"; }
function add(&$node){ $this->children[]=$node; }
function display($depth){ $this->dispaly_($depth); foreach ($this->children as $node) { $node->display($depth+1); }
SMARTY只是最后的数据输出,首先要理清,数据结构,以及核心算法。
如果一个子分类只有一个父分类的话,实现起来是很容易的。http://blog.csdn.net/froole/archive/2008/06/04/2510863.aspx
id(主id) class_id(标志id) name(分类名)
1 0 aa
2 1 bb
3 2 cc第一步 遍历分类表:
$sql = select * from tb;
$result = mysql_query($sql);
$row = mysql_fetch_array($result );第二步 组合无级分类数组:调用recursion方法参数$class_id从0开始(由上往下找)recursion($row,0);function recursion($row,$class_id){
foreach ($row as $v) {
if ($v[class_id] == $class_id) {
$arrayCategory[] = $v;
recursion($row,$v[id]);
}
}
return $arrayCategory;
}第三步 显示无级分类display('category',$arrayCategory);页面:
<table>
{section name=i loop=$category}
<tr>
<td>{ $category [ i ] [i][i]. name }</td>
</tr>
{/section}
</table>[/i][/i]
无非就一个递归,其实没什么大不了的
<?php
class node{
var $name;
function node($name){
$this->name=$name;
}
function remove(){}
function add(){}
function display(){}
function dispaly_($depth){
$i=0;
while($i<$depth){
echo " ";
$i++;
}
echo $this->name."<br>";
}
} class leaf extends node{
function leaf($name) {
parent::node($name);
}
function remove(){
echo "leaf remove error!";
}
function add(){
echo "leaf add error!";
}
function display($depth){
$this->dispaly_($depth);
}
}class anode extends node{
var $children=array();
function anode($name){
parent::node($name);
}
function remove(){
echo "anode can't remove!";
}
function add(&$node){
$this->children[]=$node;
}
function display($depth){
$this->dispaly_($depth);
foreach ($this->children as $node) {
$node->display($depth+1);
}
}
}
$root= new anode("root");
$root->add(new leaf("leaf1"));
$root->add(new leaf("leaf2"));
$root->add($a1=new anode("anode1"));
$root->add(new anode("anode1"));
$a1->add($a2=new anode("leaf3"));
$a2->add(new anode("anode34"));
$root->display(0);
?>
产品集中体现了简单、易用、适用的风格。是集商品进、销、存和财务管理一体化的管理软件:
即将物流与钱流、业务数据与财务数据自动集成,实现商品库存、往来账项、资金流动、费用收支及利润浑然联结。
它超越了财物的门槛,用通俗易懂的思路代替了会计专业概念,操作简明、流畅。即使不懂会计,也能在短期内学会使用,
是面向中小企业全面管理软件的典范。
提供了全面的业务解决,包括:采购管理、销售管理、库存管理、账务管理、往来管理、门店管理、零售管理、会员卡管理、
操作员权限管理、查账管理 POS机 等,满足不同用户不同的管理与营销需要。
网址: http://www.e88e.com.cn金诺软件产品采用最大限度上的各种合作、代理,希望能够通过软件代理商,把金诺企业管理系列产品推广给更多有需要的客户,无论是个人还是企业,只要看好金诺企业管理软件产品,都可以成为我们的代理商,零投入高回报,代理商无须压货,只要把产品介绍给有需要的客户,
源码购买价格可议
详情请直接跟我们业务部联系。
具体事项欢迎直接与我们业务部联系: 13999954110