使用DEDE的全国地区分类导入到其它CMS
原创
©著作权归作者所有:来自51CTO博客作者peishuai1987的原创作品,请联系作者获取转载授权,否则将追究法律责任
因为要用到全国地区分类,直接查看了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 ) ;
}
?>