从我的Android应用程序

时间:2017-05-29 06:16:58

标签: php android mysql json

我正在使用以下代码将从我的Android应用程序中选择的值传递到服务器:

if(isset($_POST['states']) && isset($_POST['min_budget']) && $_POST['max_budget'] && $_POST['activity']){  

// check for post data
$states = $_POST['states'];
$min_budget = $_POST['min_budget'];
$max_budget = $_POST['max_budget'];
$activity = $_POST['activity'];


        // get resorts from resort table


$result=mysqli_query($con, "SELECT resorts.resort_name , room_prices.2A FROM resorts inner join room_prices on room_prices.resort_id =resorts.id inner join resort_activities on resorts.id = resort_activities.resort_id inner join activities on resort_activities.id = activities.id WHERE resorts.state_id = (SELECT id FROM states WHERE name = $sname) and activities.activity_name = $activity and room_prices.2A between $min_budget and $max_budget order by room_prices.2A");

if (mysqli_num_rows($result) > 0) {

    $response["resorts"] = array();
    $response["room_prices"] = array();

    $i = 0;
    while($row = mysqli_fetch_array($result)){
        $response["resorts"][$i] = $row["resort_name"];
        $response["room_prices"][$i] = $row["2A"];
        $i++;
    }


    $response["success"] = 1;


} else {
    // no resort found
    $response["success"] = 0;
    $response["message"] = "No resort found";

}

但每次我在Android中的logcat中获得{"success":0,"message":"No resort found"}。我做错了什么?

我的java代码:

        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("states", states));
        params.add(new BasicNameValuePair("min_budget", min_budget));
        params.add(new BasicNameValuePair("max_budget", max_budget));
        params.add(new BasicNameValuePair("activity", activity));


        // Check your log cat for JSON response
        try {
            JSONObject json = jParser.makeHttpRequest(url_all_resorts, "POST", params);
            Log.d("All Resorts : ", json.toString());

jParser是JSONparser类

类型的对象
        public JSONObject makeHttpRequest(String url, String method,
                                  List<NameValuePair> params) {

            try{
            if(method.equals("POST")){
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(new UrlEncodedFormEntity(params));

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

1 个答案:

答案 0 :(得分:0)

$states = $_GET['states'];
$min_budget = $_GET['min_budget'];
$max_budget = $_GET['max_budget'];
$activity = $_GET['activity'];

尝试通过$ _POST而非$ _GET访问参数。

$states = $_POST['states'];
$min_budget = $_POST['min_budget'];
$max_budget = $_POST['max_budget'];
$activity = $_POST['activity'];