2016-07-02 1 views
0

У меня есть несколько строк в db, таких как 'id', 'name', 'bill' и получение их как RESTful-сервиса json. Тем не менее, я не получаю все данные строк в json и получаю только последнюю строку. Кто-нибудь может мне помочь?Извлечение данных из db только выборки последней строки как Json

Код сниппета:

//Putting query in connection 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     $array = array('DATA'=> 
      array(
       array('id'=>$row["id"], 'name'=> $row["name"], 'bill'=> $row["bill"]), 
      ) 
     ); 
    } 
    echo json_encode($array); 
} 

Результат:

enter image description here

+0

Вы могли бы ответить на это ниже ... не в комментариях. :) – Deadpool

ответ

5

Пояснение: На каждом цикле в то время, вы заменяете содержание $array. Таким образом, когда цикл заканчивается, вы получаете только последнюю строку.

Итак, попробуйте использовать:

// while 
$array[] = array('DATA'=> ... 
// rest of code 


Если вы хотите самый верхний уровень, чтобы быть DATA, это может быть достигнуто с помощью mysqli_result::fetch_all в гораздо более простой способ . Посмотрите:

// run query 
$arr = $result->fetch_all(MYSQLI_ASSOC); // (gotta fetch 'em all) 
$arr = array('DATA' => $arr); // set the top-level part 
echo json_encode($arr); // display json 

Это будет что-то вроде:

{ 
    "DATA":[ 
     { 
     "id":5, 
     "name":"Pizza", 
     "bill":"$50" 
     }, 
     { 
     "id":"ANOTHER_ID", 
     "name":"ANOTHER_FOOD", 
     "bill":"ANOTHER_BILL" 
     } 
    ] 
} 

В боковых нот для второго метода:

  • Это будет возвращать все столбцы из SELECT , поэтому вы можете указать нужные столбцы (SELECT id, name, bill FROM table_name вместо SELECT * FROM table_name);
  • Вы можете изменить имена столбцов, возвращенные в результате, с помощью alias. Таким образом, возвращенные ключи станут тем, чем вы хотите, чтобы они были.
+0

Я хотел ответить на этот вопрос, но 1 голос –

+0

Если кто-то знает лучший ресурс «alias» ... – FirstOne

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