如何从应用程序Android向SQL请求发送变量

时间:2019-10-21 21:02:27

标签: android sql json

我尝试从数据库到应用程序附近的位置,但是我不知道如何随请求发送变量$ 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();
            }
}

1 个答案:

答案 0 :(得分:0)

您需要从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

相关问题