【问题标题】:Passing values to php from my android application从我的 android 应用程序向 php 传递值
【发布时间】:2017-05-29 06:16:58
【问题描述】:

我正在使用以下代码通过 php 将从我的 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();

【问题讨论】:

  • 首先你的方法是 GET 还是 POST ?
  • 您发布价值,使用 get 获取访问权限。
  • 抱歉,我不小心输入了 GET。这是 POST @JYoThI
  • 你的 SQL 查询是什么?您必须在查询中包含 php 变量。看起来 $min_budget 和 $max_budget 不包括在查询中。
  • 如果你想从结果集中获取两次数据意味着你需要使用 mysql_data_seek($result, 0);在第二个 while 循环之前将内部数据指针重置为 0 。否则会报错。

标签: php android mysql json


【解决方案1】:
$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'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 2023-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多