2014-01-17 4 views
0

Я правильно подхожу сюда? Это то, что мой IOS разработчик хочет, чтобы я сделал для значений базы данных для приложения он работает на:Препятствует возврату объектов JSON с использованием PHP

{“array”:[{“restID":1, etc.}, {“restID":2, etc.}, {“restID”:3, etc.}, {“restID”:4, etc.}], “error":""} 

Сейчас мой PHP код:

if ($stmt = $mysqli->prepare($query)) { 
    $stmt->bind_param("sssisi",$lat,$lat,$lng,$rest_price,$rest_genre,$eat_options); 
    $stmt->execute(); 
    $stmt->bind_result($rest_id,$user_id,$rest_name,$lat,$lng,$rest_price,$rest_rating,$rest_genre,$eat_options,$result); 
    //define error array 
    $errArray = array('error' => ''); 
    while ($stmt->fetch()) { 
     $row = array(
      'restID' => $rest_id, 
      'userID' => $user_id, 
      'rest_name' => $rest_name, 
      'lat' => $lat, 
      'lng' => $lng, 
      'restPrice' => $rest_price, 
      'restRating' => $rest_rating, 
      'restGenre' => $rest_genre, 
      'eat_options' => $eat_options); 

     $rows['array'][] = $row; 
    } 
    echo json_encode($rows); 
}.... 

которая выводит следующее:

{“array”:[{“restID":1, etc.}, {“restID":2, etc.}, {“restID”:3, etc.}, {“restID”:4, etc.}]} 

Извещение Я не могу подогнать массив в противном случае я получаю некоторые сумасшедшие вещи или синтаксические ошибки с PHP. Пожалуйста, порекомендуйте! Как я могу получить первый пример для работы с текущим кодом, который я использую? Что мне нужно для манипулирования на моем PHP? Опять же, я хочу

{“array”:[{“restID":1, etc.}, {“restID":2, etc.}, {“restID”:3, etc.}, {“restID”:4, etc.}], “error":""} 

Не:

{“array”:[{“restID":1, etc.}, {“restID":2, etc.}, {“restID”:3, etc.}, {“restID”:4, etc.}]} 
+0

Я не уверен, я вижу проблему. Какая у вас проблема? Какие синтаксические ошибки вы получаете? –

+1

Вы хотите использовать array_merge? – spraff

+0

Ваши примеры также вводят в заблуждение. – Zarathuztra

ответ

3

Просто объединить массив ошибок в массив строк так:

echo json_encode(array_merge($rows, $errArray));

+0

Спасибо Farkie! Это ТОЧНО, что мне нужно. Извините, я был настолько запутан для всех, я был слишком смущен, потому что я не понимал, что даже могу использовать функцию array_merge. – jflay

0

Вы сделали errArray отдельный массив, который содержит один элемент, ключ, называемый ошибкой. Ваш код не добавляет его к другому, который кодируется как JSON.

2

попробовать это

$rows['error'] = 'Error message' 
+1

Это был правильный ответ, так как я мог делать $ rows ['array'] [] = $ row; $ rows ['error']. = ''; (добавьте две строки php) и получите тот же результат. Что лучше? Для этого или для объединения массивов, как раньше? – jflay

+0

поместить все возвращенные результаты в один массив и отправить его обратно, используя функцию слияния не нужно –

Смежные вопросы