簡體   English   中英

如何使用 php 將檢索到的 MySQL 數據格式化為 JSON 格式

[英]How to format the retrieved MySQL data in JSON format using php

我正在嘗試使用 php 從 MySQL 檢索數據,但我對 php 有點陌生。 我有一張這樣的桌子

    distance    height      time
         25      70       17:50:24
         12      69       17:30:24
         15      55       17:10:24

我希望保留一個 JSON 像這種格式:

{
    
      "data": true,
    
      "time":[
      "17:50:24",
      "17:30:24",
      "17:10:24"
    ],
    
      "distance":[
        25,
        12,
        15
      ],  
    
       "height":[
        70,
        69,
        55
      ]
    
    }

我的 php 腳本是這樣的:

<?php  
$db = mysqli_connect("127.0.0.1", "root", "pw", "test1"); 
$row=$db->prepare('SELECT * FROM table');  
$row->execute();
$json_data=array();
$json_latdata=array();

$result = array();
$result1 = array();
foreach($row as $rec)//foreach loop  
{  
    $json_array['distance']=$rec['distance']; 
    $json_array['height']=$rec['height'];   
    $json_array['time']=$rec['time'];  
    array_push($json_data,$json_array); 
    array_push($json_latdata,$json_array1);   
}  
$result = $json_data;
$result1 = $json_latdata;
echo json_encode(array($result,$result1));
?>

但是 output 是行格式(帶有重復的標題),而不是我想要的 JSON 格式及其讀數 null:

[[{"distance":null,"height":null,"time":null},
  {"distance":null,"height":null,"time":null},
  {"distance":null,"height":null,"time":null},
  {"distance":null,"height":null,"time":null},
  {"distance":null,"height":null,"time":null},
  {"distance":null,"height":null,"time":null},
  {"distance":null,"height":null,"time":null},
  {"distance":null,"height":null,"time":null},
  {"distance":null,"height":null,"time":null},
  {"distance":null,"height":null,"time":null}],
 [null,null,null,null,null,null,null,null,null,null]]

非常感謝您的時間!

您正在為每一行創建一個新的 object,而不是為每一列將它們添加到 arrays 中。

為每列創建一個包含元素的二維數組。 然后在處理查詢結果時,將每一列推送到適當的元素數組中。

<?php  
$db = mysqli_connect("127.0.0.1", "root", "pw", "test1"); 
$stmt = $db->prepare('SELECT distance, height, time FROM table');  
$stmt->execute();
$rows = $stmt->get_result();

$result = ['data' => true, 'time' => [], 'distance' => [], 'height' => []];
foreach($rows as $rec)//foreach loop  
{  
    foreach ($rec as $col => $value) {
        $result[$col][] = $value;
    }
}  
echo json_encode($result);
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM