为了账号安全,请及时绑定邮箱和手机立即绑定

mysql查询语句里如何使用PHP变量?

mysql查询语句里如何使用PHP变量?

PHP
慕码人2483693 2019-03-14 02:54:25
代码如下: SELECT ROUND( 6378.138 * 2 * ASIN(SQRT(POW( SIN((纬度 * PI() / 180 - substring_index(maps, ",", - 1) * PI() / 180) / 2),2) + COS(纬度 * PI() / 180) * COS(substring_index(maps, ",", - 1) * PI() / 180) * POW(SIN((经度 * PI() / 180 - substring_index(maps, ",", 1) * PI() / 180) / 2),2)) ) * 1000 ) FROM list ORDER BY distance asc 问题一:上面代码里的经度和纬度是获取用户当前位置的经纬度,我在外面写了个百度提供的接口通过IP地址获取经纬度,分出来两个变量一个是$lat一个是$lng,请问我该如何把这两个变量替换上面代码里的经度和纬度呢? 问题二:还有就是我通过下面代码获取用户IP function getIP(){ global $ip; if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); else $ip = "Unknow"; return $ip; } $content = file_get_contents("http://api.map.baidu.com/location/ip?ak=akid&ip=IP地址&coor=bd09ll");我应该怎么把getIP()这个方法写在上面IP地址的位置呢?让它能成功解析IP地址呢?非常感谢!~
查看完整描述

3 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

谢邀。

$lat$lon直接替换到上面拼接字符串即可。

你的sql查询语句在php中使用,自然需要拼接sql语句,把sql当成一个字符串,拼接好之后再query即可。

另外,要看你的经纬度是什么格式,是XXX°XXX′xxx″形式还是11231.123形式,前者不支持运算,需要转后者。

其次不建议在数据库查询的时候使用计算,你上面sql中的计算完全可以在php中计算完,直接 查询计算的结果。

第四,初步感觉你的sql有问题,sql直接查询数据,而不是select field from table where xxx = xxx order ,你select的直接select了一个数据。比如 select 1 from table ..

第二个问题拿到ip之后拼接到里面的字符串即可,一样的道理。

查看完整回答
反对 回复 2019-03-18
?
HUWWW

TA贡献1874条经验 获得超12个赞

最简单的 用点运算符"."进行字符串拼接啊

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 535 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信