欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

根据新浪IP数据库,判断城市

程序员文章站 2022-05-23 20:56:13
...
PHP根据新浪IP数据库,判断出访客城市,匹配数据库字段中设置的城市
比如判断出访客城市为北京市,匹配数据库 如果当前访客城市=ID为1 的city字段 输出 结果 a 如果不等于 输出结果ab
数据库如下图
----------------------------------------------------
id city info

1 北京市 上海市 深圳等 1 线城市
2 南京,武汉等 2 线城市
----------------------------------------------------------

需要怎么样 写,还有我这样设置表1线城市 2线城市分类合理吗。
我是想屏蔽指定区域,后台设置1线城市或者2线城市,根据用户城市匹配数据库,输出不一样的结果。
求具体的PHP代码 感谢。。。。


回复讨论(解决方案)

这样?

$query = mysql_query("select id from table where city like '%北京市%'") or die(mysql_error());$thread = mysql_fetch_assoc($query);$id = isset($thread['id'])? $thread['id'] : 0;if($id>0){ // 表示找到匹配    echo 'a';}else{    echo 'ab';}

这样?

$query = mysql_query("select id from table where city like '%北京市%'") or die(mysql_error());$thread = mysql_fetch_assoc($query);$id = isset($thread['id'])? $thread['id'] : 0;if($id>0){ // 表示找到匹配    echo 'a';}else{    echo 'ab';}



表a
------------------------
id name open
1 张三 0
2 李四 1
-------------- -----
想设置一个IP城市屏蔽表,比如设置表A ID为1 屏蔽区域为1线城市,或者2线,或者指定城市
那么表B (IP城市屏蔽表) 要如何设计

那个open 字段是做什么的。
表a
------------------------
id name open
1 张三 0
2 李四 1
-------------- -----

表city设计如下
id city info group

1 北京市 1 线城市 1
2 上海市 1 线城市 1
3 深圳 1 线城市 1
4 南京 2 线城市 2
5 武汉 2 线城市 2
----------------------------------------------------------

ip城市屏蔽表
id, uid, city_id city_group
1 1 0 1
2 2 0 1
3 1 0 2
4 1 12 0

uid是表a的id, city_id是city表id,city_group表示几线城
ip城市屏蔽表记录的意思就是,张三屏蔽一线和二线城市和city_id=12的城市,李四屏蔽一线城市。

查询张三屏蔽的城市。
select * from ip where uid=1; 找出group和city_id集合

然后select * from city where group not in($group) and city_id not in($city_id);

第一点..你要有每个IP对应的省份城市的数据...然后根据获取到的IP找的对应的城市...进行转跳对应城市的URL...不过一般都用脚本去检测...不会在程序里面检测..