因为要用到全国地区分类,直接查看了DEDE的数据库,发现有个表已经帮我们搞定了,那就是dede_area表,利用这个表,我们可以将其处理后,变成任何我们需要的格式的地区分类
处理过程是这样的,分两步进行,第一步,先将一个地区和它的所有地区插入表格,不处理父子关系;第二步,专门去用update去处理父子关系,对应到本表格,是将一个节点的所有孩子的ID保存到本节点的一个字段,程序如下:
<?php require_once './db.class.php'; $db = new DB(); $sql = "select * from dede_area where reid='0';"; $rs = $db->query($sql); while($row = $db->getRows($rs)){ $sql1 = "insert into brand_categories(upid,type,name,note,subcatid) values(0,'region','".$row['name']."','','')"; $db->query($sql1); $insertId = mysql_insert_id(); $sql2 = "select * from dede_area where reid='".$row['id']."';"; $rs2 = $db->query($sql2); while($row2= $db->getRows($rs2)){ $sql3 = "insert into brand_categories(upid,type,name,note,subcatid) values('".$insertId."','region','".$row2['name']."','','')"; $db->query($sql3); } } $sql = "select * from brand_categories where type='region';"; $rs = $db->query($sql); while($row = $db->getRows($rs)){ $str = ''; $str .= $row['catid']; $sql = "select * from brand_categories where upid='".$row['catid']."';"; $rs2 = $db->query($sql); while ($row2 = $db->getRows($rs2)){ $str .= ", ".$row2['catid']; } $sql2 = "update brand_categories set subcatid='".$str."' where catid='".$row['catid']."'"; $db->query($sql2); } ?>