【发布时间】: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 。否则会报错。