[英]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.