使用递归写了一个导出无限级分类为excel的方法。数据库表的字段分别有:catid(主键),catname(类名),parentid(父类id),arrparentid(父类字符串以‘,’隔开)。
function get_ALL_Cat($catid,&$item=array(),$str="") {
global $db;
header("Content-Type: application/vnd.ms-execl;");
header("Content-Disposition: attachment; filename=download.xls");
header("Pragma: no-cache");
header("Expires: 0");
$result = $db->query("SELECT * FROM {$db->pre}category WHERE parentid=$catid and moduleid = 5");
while ($r = $db->fetch_array($result)) {
$item[] = $r['catname'];
$r['catname'] = iconv("UTF-8", "GBK", $r['catname']);//解决乱码问题
$arr = explode(',',$r['arrparentid']);//存储有多少个父类的字段
for($i=0;$i<count($arr);$i++){
$str.="\t";
}
echo $str.$r['catname'];
$str="\r\n";
get_ALL_Cat($r['catid'],$item,$str);//递归
}
return $item;
}