省市区--数据库表

♦ 最近找省市区得插件,真是好崩溃啊,找的插件大部分都有这样得问题:

♦首先省市区三级联动功能都没问题

♦最大的问题是区 / 县 数据问题

♦旧版本的插件,区县数据包含镇级地名,大多都重复城关镇,比如河南省洛阳市下面的区县重复多个城关镇这个地名。

◎第一步:点击下载数据库表

地址库下载:https://www.qazwsx123.icu/ct_areas.sql

◎第二步:运行数据库文件,创建数据表ct_areas

◎第三步:在PHP文件中查询使用

示例代码:

public function ssq_lists(){

    $res = Db::table('ct_areas')

        ->field('parentId,areaId,isShow,areaName')

        ->where(['isShow'=>1])

        ->select();

    $res = $this->moreList($res,0);

    foreach ($res as $k=>$v){

        $res[$k]['label'] = $v['areaName'];

        $res[$k]['value'] = $v['areaName'];

        unset($res[$k]['isShow']);

        unset($res[$k]['parentId']);

        unset($res[$k]['areaId']);

        unset($res[$k]['areaName']);

    }

    return json(['code' => 200, 'msg' => '获取成功','res'=>$res]);

}

function moreList($arr, $p_id){

    //数据层级化,

    $r = array();

    foreach($arr as $key=>$val){

        if($val['parentId'] == $p_id) {

            $length = count($r);//0

            $r[$length] = $val;

            if($t = $this->moreList($arr,$val['areaId'])){//$key

                foreach ($t as $a=>$b){

                    $t[$a]['label'] = $b['areaName'];

                    $t[$a]['value'] = $b['areaName'];

                    unset($t[$a]['parentId']);

                    unset($t[$a]['areaId']);

                    unset($t[$a]['isShow']);

                    unset($t[$a]['areaName']);

                }

                $r[$length]['children'] = $t;

            }

}

}

    return $r;

}

♦接口返回数据示例

你可能感兴趣的:(省市区--数据库表)