我正在尝试将一组结果从 PHP 返回到 android。
我已经能够返回一个结果,但现在我试图返回多个结果,我在弄清楚如何将其作为数组执行时遇到了一些麻烦。
PHP函数:
public function searchForPeople($tower) {
$uuid = uniqid('', true);
$result = mysql_query("SELECT * FROM users WHERE tower='$tower'") or die(mysql_error());
$resultNo = mysql_num_rows($result);
// check for successful store
if ($result != null) {
//if just one result return it
if ($resultNo == 1) {
// return result
$resultSet[] = mysql_fetch_array($result);
return $resultSet;
//if more than one loop through
} else {
//add each row to an array
while($row = mysql_fetch_array($result)) {
$resultSet[] = $row;
}
return $resultSet;
}
} else {
return false;
}
}
index.php 的部分,我将我的数据从 android 发布到:
//SEARCH FOR PEOPLE
else if ($tag == 'searchPeople') {
$tower = $_POST['tower'];
$result = $db->searchForPeople($tower);
// check array has been created
if ($result != false) {
$response["success"] = 1;
$count = 0;
foreach($result as $row) {
$response[$count]["user"]["name"] = $row["name"];
$response[$count]["user"]["email"] = $row["email"];
$count++;
}
echo json_encode($response);
} else {
$response["error"] = 2;
$response["error_msg"] = "No users found";
echo json_encode($response);
}
}
else {
echo "Invalid Request";
}
然后,我试图在 android 中获取信息,如下所示,但是收到没有 0 值的错误,这意味着我在 PHP 中返回 json 的方式一定有问题。
JSONObject results = new JSONObject(resultsString);
JSONObject json_row = results.getJSONObject("0");
JSONObject json_user = json_row.getJSONObject("user");
我确定这是返回 SQL 结果的 PHP 数组的问题。可能当我循环它们以将它们添加到 $resultSet 或 $response 时。
非常感谢任何帮助。
编辑:
以下是我得到的错误:
11-14 19:42:37.270: E/JSON(639): "[{\"uid\":\"4\",\"unique_id\":\"505efc638e0f48.78430999\",\"name\":\"fish\",\"email\":\"fish\",\"encrypted_password\":\"r\/Hb7uXrHN8bFuRoKlG8+Y5LdKFjM2QyZDUyYzQ1\",\"salt\":\"c3d2d52c45\",\"created_at\":\"2012-09-23 13:11:15\",\"updated_at\":\"2012-11-03 09:56:15\",\"location\":\"888\",\"tower\":\"IS\",\"base_location\":\"\",\"client_site\":\"\",\"graduate\":\"0\",\"location_updated\":\"0000-00-00 00:00:00\"}]"
11-14 19:42:37.270: E/JSON Parser(639): Error parsing data org.json.JSONException: Value [{"uid":"4","unique_id":"505efc638e0f48.78430999","name":"fish","email":"fish","encrypted_password":"r/Hb7uXrHN8bFuRoKlG8+Y5LdKFjM2QyZDUyYzQ1","salt":"c3d2d52c45","created_at":"2012-09-23 13:11:15","updated_at":"2012-11-03 09:56:15","location":"888","tower":"IS","base_location":"","client_site":"","graduate":"0","location_updated":"0000-00-00 00:00:00"}] of type java.lang.String cannot be converted to JSONArray