如何将变量发送到来自安卓应用程序的 sql 请求



我尝试从我的数据库获取附近的位置到我的应用程序,但我不知道如何发送变量$lat并$lng我的请求。一切正常,我只需要输入变量即可获得附近的位置。感谢您的帮助。

PHP代码:

public function getNearbyLocation(){
$lat = '44.562203';//?
$lng = '5.956187';//?
$query = "SELECT nom, ( 6371 * acos( cos( radians($lat) ) * cos( radians( lat ) ) * 
cos( radians( lng ) - radians($lng) ) + sin( radians($lat) ) * 
sin( radians( lat ) ) ) ) AS distance FROM location ORDER BY distance" ;
$dbcontroller = new DBController();
$this->location = $dbcontroller->executeSelectQuery($query);
return $this->location;
}

应用代码:

public void getNearbyPlace(final String type, final LocationCallback callback) {
String url = "http://exemple.com//location//locationcontroller.php?view=" + type;
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, new 
Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
List<Location> list = new ArrayList<>();
try {
JSONArray jsonArray = response.getJSONArray("location");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject location = jsonArray.getJSONObject(i);
String nom = location.getString("nom");
Double lat = location.getDouble("lat");
Double lng = location.getDouble("lng");
Location singleLocation = new Location(nom, description, 
lat, lng);
list.add(singleLocation);
}
callback.onSuccess(list);
} catch (JSONException e) {
e.printStackTrace();
}
}

您需要从SQL查询创建一个JSON有效负载(在php端(,并从API返回该有效负载,将所有结果放入JSONArray调用"位置"中 看起来像

{location: [
{ 'nom': "",
'lat': <Float>,
'lng': <Float>
},{ 'nom': "",
'lat': <Float>,
'lng': <Float>
}
]
}

结帐json_encode https://www.php.net/manual/en/function.json-encode.php

相关内容

最新更新