2017-09-14 24 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 = array(
    'name' => $name, 
    'email' => $email, 
    'phone' => $phone, 
    'address' => $address 
); 

應改爲:

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

這樣,每行都加入到$data_array