Я пытаюсь получить несколько строк из моей базы данных, а затем кодировать их json
так что я могу получить к ним доступ в моем приложении для Android. Я успешно закодировал объект, но не смог найти способ сделать то же самое с массивом. Мой код выглядит так:
if ($ tag == ‘friends’) {
$id = $_POST['id'];
$friends = $db->getMyFriends($id);
if ($friends != false) {
// friends found
$result[] = array();
while($row = mysql_fetch_assoc($friends)){
$response[ "error"] = FALSE;
$result[] = array(
$response["friends"]["unique_id"] = $row["unique_id"],
$response["friends"]["name"] = $row["name"],
$response["friends"]["email"] = $row["email"]);
}
echo json_encode($response);
}
Код из getMyFriends ($ id), который я уже тестировал, работает нормально. Возвращает:
$ result = mysql_fetch_array ($ result);
вернуть $ результат;
При использовании отдыхающего клиента передаются параметры:
Tag: друзья
id: $ id
это json
ответ, который я получаю:
{
«tag»: «мои друзья»,
«ошибка»: ложь
}
, но нет фактических данных базы данных.
Если кто-нибудь знает, что я делаю не так, я был бы очень признателен, я смотрю в Интернете уже несколько часов.
Если getMyFriends уже есть $result = mysql_fetch_array($result);
вам не нужно снова получать.
Вы могли бы просто:
$friends = $db->getMyFriends($id);
echo json_encode($friends);
Но это вернет только одного друга, если вы хотите все удалить $result = mysql_fetch_array($result);
из getMyFriends и верните чистый mysql_result, затем сделайте что-то вроде:
$result = array();
while($row = mysql_fetch_assoc($friends)){
array_push($result,$row);
}
echo json_encode($result);
Я попробовал это, и это сработало.
if($tag=='friends'){
$id = $_REQUEST['id'];
$friends = $db->getMyFriends($id);
if ($friends != false) {
// friends found
$result[] = array();
while($row = mysql_fetch_assoc($friends)){
$response[ "error"] = FALSE;
$result[] = array(
$response["friends"]["unique_id"] = $row["id"],
$response["friends"]["name"] = $row["name"],
$response["friends"]["email"] = $row["email"]
);
}
echo json_encode($result);
}
}