iT邦幫忙

0

PHP抓取SQL資料以json格式返回

  • 分享至 

  • xImage

我想將SQL資料以json格式列出在網頁上

$data = array();

$user = new User();
$user->id = "1";
$user->Md5 = "c0bd5ed152744e2c8218f2fb2bc8ead6";
$data[]=$user;

$user = new User();
$user->id = "2";
$user->Md5 = "c0bd5ed152744e2c8218f2fb2bc8ead6";
$data[]=$user;

echo json_encode($data,JSON_UNESCAPED_UNICODE);

這樣是成功的

[
  {
    "id": "1",
    "Md5": "c0bd5ed152744e2c8218f2fb2bc8ead6"
  },
  {
    "id": "2",
    "Md5": "c0bd5ed152744e2c8218f2fb2bc8ead6"
  }
]

但我其中有個數值會有好幾個資料 希望列出來像這樣

[
  {
    "id": "1",
    "Md5": "c0bd5ed152744e2c8218f2fb2bc8ead6",
    "Type": [
      "A",
      "B"
    ]
  },
  {
    "id": "2",
    "Md5": "c0bd5ed152744e2c8218f2fb2bc8ead6",
    "Type": [
      "X",
      "Y",
      "Z"
    ]
  }
]

請問Type部分要怎麼寫呢?

小哈片刻 iT邦研究生 5 級 ‧ 2022-11-16 00:58:33 檢舉
你可能要先講一下你的資料結構,這樣才有辦法幫你吧
PPTaiwan iT邦好手 1 級 ‧ 2022-11-16 02:51:26 檢舉
如果你用的是 MS SQL 2016 以上 這些資料都可以直接用 SQL TO JSON 就可以轉出來了,不用還用程式來 組合
woeichern iT邦新手 2 級 ‧ 2022-11-16 09:38:36 檢舉
樓主提供的資訊不夠充足,像是樓主是否有使用框架、各資料表關聯方式等,要麻煩樓主補充一下。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2

我本來想寫討論。
但我還是想寫回答。
因為比較明顯表達我想說的話。

PHP的語言開發者做錯的一件事……
就是把Array和Hash Table混在一起用。

["A", "B", "C", "D"]

上面這個叫做Array

["name": "Sam", "address": "Taipei"]

上面這個叫做Hash Table,亦或稱之為Dictionary(像字典般有key value可查詢)
在一般JSON標準表示Array:

["A", "B", "C", "D"]

[1, 2, 3, 4, 5]

在一般JSON標準表示Hash Table(Dictionary)

{"name": "Sam", "address": "Taipei"}

總之,純粹只是PHP這個語言比較混蛋而已……不好好分,全都叫Array(明明Hash Table就不是)

froce iT邦大師 1 級 ‧ 2022-11-16 15:03:26 檢舉

我在猜前幾天有篇 Array 轉到JSON會跑出 {"1" : {...}},{"2": {...}}這種奇妙的鍵值對的也是PHP...

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-11-16 09:43:17

試試

<?php
$arrType1 = array('A'=>'','B'=>'');
$arr1 = array ('id'=>1,'Md5'=>'c0bd5ed152744e2c8218f2fb2bc8ead6','Type'=>$arrType1);

$arrType2 = array('X'=>'','Y'=>'','Z'=>'');
$arr2 = array ('id'=>1,'md5'=>'c0bd5ed152744e2c8218f2fb2bc8ead6','Type'=>$arrType2);

$arr = array($arr1, $arr2);

echo json_encode($arr);
?>

我要發表回答

立即登入回答