2017-09-14 5 views
1

mySQLからデータを取得し、JSONファイルとして生成しようとしています。
しかし、出力は1行しか表示されません。
データベーステーブル内には多くの行があります。
このコードで何が問題になっていますか?SQLデータを取得し、jsonファイルとして生成

$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)); 

答えて

3

ループで毎回$data_arrayを上書きしています。

したがって、この部分:そして各行が$data_arrayに追加さ

$data_array[] = array(
    'name' => $name, 
    'email' => $email, 
    'phone' => $phone, 
    'address' => $address 
); 

$data_array = array(
    'name' => $name, 
    'email' => $email, 
    'phone' => $phone, 
    'address' => $address 
); 

に変更しなければなりません。

関連する問題