Php 检索sql数据并生成为json文件

Php 检索sql数据并生成为json文件,php,mysql,database,Php,Mysql,Database,我正在尝试从mySQL检索数据并生成JSON文件。 但输出仅显示1行。 数据库表中有许多行。 这个代码有什么问题 $sql = "SELECT * FROM form_element"; $result = mysqli_query($conn, $sql); $response = array(); $data_array = array(); if (mysqli_num_rows($result) > 0) { // output data of each row whi

我正在尝试从mySQL检索数据并生成JSON文件。
但输出仅显示1行。
数据库表中有许多行。
这个代码有什么问题

$sql = "SELECT * FROM form_element";
$result = mysqli_query($conn, $sql);
$response = array();
$data_array = array();
if (mysqli_num_rows($result) > 0) {
   // output data of each row
   while($data = mysqli_fetch_assoc($result)) {
      $id = $data['id'];
      $name = $data['name'];
      $email = $data['email'];
      $phone = $data['phone'];
      $address = $data['address'];
      $data_array = array(
         'name' => $name, 
         'email' => $email, 
         'phone' => $phone, 
         'address' =>  $address
      );
   }
} else {
   echo "0 results";
}
$response['data_array'] = $data_array;
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($response));

每次在循环中都会覆盖
$data\u array

因此,这部分:

$data_array = array(
  'name' => $name, 
  'email' => $email, 
  'phone' => $phone, 
  'address' =>  $address
);
应改为:

$data_array[] = array(
  'name' => $name, 
  'email' => $email, 
  'phone' => $phone, 
  'address' =>  $address
);
然后将每一行添加到
$data\u数组中