2016-01-24 3 views
0

У меня есть этот код в PHP:Как я могу получить все строки данных?

if (empty($_GET)) { 
     $response['code'] = 1; 
     $response['status'] = $api_response_code[$response['code']]['HTTP Response']; 
     $sql = "SELECT * FROM table"; 
     $result = $conn->query($sql); 

     if ($result->num_rows > 0) { 
      // output data of each row 
      while ($row = $result->fetch_assoc()) 
        $response['data'] = $row; 
     } else 
      $response['data'] = NULL; 
} 

В настоящее время, я беру только последнюю строку в $ ответ [ «данные»]. Как я могу преобразовать этот код, чтобы получить все значения $ row?

Я попытался инициализацией $response['data'] = array(); , а затем сделал $this->response['data'] = $row; , но это не сделать трюк. Обратите внимание, что я начинаю на PHP.

+0

Это [SO сообщений] (http://stackoverflow.com/questions/7491768/get-rows-from- mysql-table-to-php-arrays) может помочь вам. – vmachan

+0

просто ответил на почти идентичный вопрос: http://stackoverflow.com/questions/34981215/my-php-scripts-returns-only-one-row-from -my-table/ –

+0

Спасибо вам большое! – alfakaiwmega

ответ

0

Вы переписываете свой $response['data'] с каждой итерацией цикла выборки и не добавляете в массив. Следовательно, последняя запись остается единственной.

Рассмотрим следующую настройку, где $data - это собственный массив для хранения записей строк из набора результатов SQL-запроса. Тогда все этот массив объекты могут быть добавлены к исходному $response массиву (создание вложенных установок):

$i = 0; 
$data = []; 
if ($result->num_rows > 0) { 
    // output data of each row 
    while ($row = $result->fetch_assoc()) { 
      $data[$i] = $row; 
      ... 

      $i++; 
    } 
} 

$response['data'] = $data; 
Смежные вопросы