2016-01-17 4 views
0

Im новый для PHP и. im, делая мобильное приложение, а также создавая для него веб-сервис. от мобильного im, отправляющего 2 параметра в качестве POST и хотите получать данные в виде данных JSON.Генерировать ответ JSON от PHP

ниже - мой PHP-код.

header('Content-type: application/json'); 
include 'connection.php'; 
$response = array(); 

$location = $_POST['location']; 
$country = $_POST['country']; 


     $query = "SELECT * FROM Feeds WHERE location='".$location."' AND country = '".$country."'"; 
     $result = mysqli_query($conn, $query); 


     if (mysqli_num_rows($result) != 0) 
     { 

      $response["Result"] = 1; 
      $response["message"] = "Here Data"; 

     }else{ 
      $response["Result"] = 0; 
      $response["message"] = "No Data"; 

     } 



echo json_encode($response); 
$conn->close(); 

, когда я проверяю текущий ответ, как показано ниже.

{"Result":1,"message":"Here Data"} 

, но я хочу также получить данные результата вместе с вышеуказанным ответным сообщением. например ниже

{ 
    "Result": 1, 
    "Message": "Here Data", 
    "Feeds": [ 
     { 
      "userid": "2", 
      "name": "Demo", 
      "address": "Demo" 
     }, 
     { 
      "userid": "2", 
      "name": "Demo", 
      "address": "Demo" 
     } 
    ] 
} 
+0

вы не получите результат вашего запроса – 0x13a

+0

@DiegoMariani, как я могу сделать что. получить результат и генерировать ответ –

+0

добавить: '$ ответ [ "каналы"] = mysqli_fetch_array ($ сопп, $ результат);' – Phiter

ответ

1

Вы также хотите повторить результат из SQL-запроса.

header('Content-type: application/json'); 
include 'connection.php'; 
$response = array(); 

$location = $_POST['location']; 
$country = $_POST['country']; 


    $query = "SELECT * FROM Feeds WHERE location='".$location."' AND country = '".$country."'"; 
    $result = mysqli_query($conn, $query); 


    if (mysqli_num_rows($result) != 0) 
    { 

     $response["Result"] = 1; 
     $response["message"] = "Here Data"; 
     while($feed = mysqli_fetch_array($result, MYSQLI_ASSOC){ 
      $response['Feeds'][] = $feed; 
     } 

    }else{ 
     $response["Result"] = 0; 
     $response["message"] = "No Data"; 

    } 



echo json_encode($response); 
$conn->close(); 
+1

И если ваша PHP-версия скомпилирована с помощью mysqlnd, вы можете использовать: '$ response ['Feed'] = mysqli_fetch_all ($ result);' вместо 'while'-loop. –

1

Здесь решение. Вы также должны нажать результат запроса в свой массив $response. Используется функция mysqli_fetch_assoc. header('Content-Type: application/json') должна вызываться перед любым фактическим выводом отправляется, я предлагаю вам поставить в конце сценария, чтобы избежать возможных ошибок

include 'connection.php'; 
$response = array(); 

$location = $_POST['location']; 
$country = $_POST['country']; 


$query = "SELECT * FROM Feeds WHERE location='".$location."' AND country = '".$country."'"; 
$result = mysqli_query($conn, $query); 


if (mysqli_num_rows($result) != 0) { 

    $response["feeds"] = []; 

    while ($row = mysqli_fetch_assoc($result)) { 
     $response["feeds"][] = $row; 
    } 

    $response["Result"] = 1; 
    $response["message"] = "Here Data"; 

} else { 
    $response["Result"] = 0; 
    $response["message"] = "No Data"; 
} 

$conn->close(); 


header('Content-type: application/json'); 
echo json_encode($response); 
+0

Благодарим вас за советы. и это сработало –

+0

приветствую :) – 0x13a