PHP实现省市县(区)三级联动查询

联动查询

什么是联动查询,其实这个东西在生活中非常常见,比如网购(这个几乎人人都用过吧),在网购的时候,我们需要填写订单信息,信息中有一项需要填写地址的地方,有的网站则用的是联动查询,节省了用户填写订单的时间,这时候联动查询就排上用场了,比如当我们在省下拉框中选择:河北省,相对应的市区就需要改变里面的信息,将相对应的市区加载到下拉框里面,贴个图片
选择河北省之后的效果

数据库设计

设计一张表,然后这张表循环查询自己,根据查询的id查找相对应的parent_id,就能够查询到想要的结果,最后两个字段是冗余字段,可要可不要,根据自己项目需求
数据表结构
创建数据库的语句如下,数据库为MySQL数据库


CREATE TABLE `china_area` (
  `id` int(11) NOT NULL,
  `parent_id` int(11) NOT NULL DEFAULT '0',
  `code` varchar(10) NOT NULL,
  `name` varchar(191) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

简单插入一些数据,完整表数据很大,大概三千多行,这里就不展示所有的数据代码了,免得华而不实,想要这些数据的话,可以去网上找一下,或者自己设计,我也上传了一份,但是需要积分


INSERT INTO `china_area` (`id`, `parent_id`, `code`, `name`, `created_at`, `updated_at`) VALUES
(1, 0, '110000', '北京市', NULL, NULL),
(2, 0, '120000', '天津市', NULL, NULL),
(3, 0, '130000', '河北省', NULL, NULL),
(4, 0, '140000', '山西省', NULL, NULL),
(5, 0, '150000', '内蒙古自治区', NULL, NULL),
(6, 0, '210000', '辽宁省', NULL, NULL),
(7, 0, '220000', '吉林省', NULL, NULL),
(8, 0, '230000', '黑龙江省', NULL, NULL),
(9, 0, '310000', '上海市', NULL, NULL),
(10, 0, '320000', '江苏省', NULL, NULL),
(11, 0, '330000', '浙江省', NULL, NULL),
(12, 0, '340000', '安徽省', NULL, NULL),
(13, 0, '350000', '福建省', NULL, NULL),
(14, 0, '360000', '江西省', NULL, NULL),
(15, 0, '370000', '山东省', NULL, NULL),
(16, 0, '410000', '河南省', NULL, NULL),
(17, 0, '420000', '湖北省', NULL, NULL),
(18, 0, '430000', '湖南省', NULL, NULL),
(19, 0, '440000', '广东省', NULL, NULL),
(20, 0, '450000', '广西壮族自治区', NULL, NULL),
(21, 0, '460000', '海南省', NULL, NULL),
(22, 0, '500000', '重庆市', NULL, NULL),
(23, 0, '510000', '四川省', 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FeiSir_PC

您的三联和鼓励是我创作的最大动

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值