亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 PHP 從 SQL 查詢創建 JSON

使用 PHP 從 SQL 查詢創建 JSON

PHP
慕工程0101907 2021-07-12 01:04:18
我正在嘗試以以下格式輸出 JSON:[{  "category": "cONTIME",  "value": 155,  "color": "#0f9b0f"},{  "category": "cLATE",  "value": 244,  "color": "#dd1818"},{  "category": "cTOTAL",  "value": 399,  "color": "#0575E6"},{  "category": "ONTIME",  "value": 60,  "color": "#0f9b0f"},{  "category": "LATE",  "value": 58,  "color": "#dd1818"},{  "category": "TOTAL",  "value": 118,  "color": "#0f9b0f"}]我正在執行的存儲過程返回下表 - 這是 SQL SERVER - 我對不感興趣的列進行了灰色處理我已經嘗試過使用$categories = [    'cONTIME' => $row['cONTIME'],    'cLATE' => [],    'cTOTAL' => [],];$colors = [    'ONTIME' => "#0f9b0f",    'LATE' => "#dd1818",    'TOTAL' => "#0575E6",];$json = array();while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {        $json['category'] = $categories;        $json['value'] = $row;        $json['color'] = $colors;}echo json_encode($json);返回這個:{   "category":{      "cONTIME":null,      "cLATE":[      ],      "cTOTAL":[      ]   },   "value":{      "cTOTAL":399,      "cONTIME":155,      "cLATE":244,      "cPERCENTS":38,      "TOTAL":118,      "ONTIME":60,      "LATE":58,      "PERCENTS":50,      "KPI":"UP"   },   "color":{      "ONTIME":"#0f9b0f",      "LATE":"#dd1818",      "TOTAL":"#0575E6"   }}我也嘗試過這個:$json = array();while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {                  $json[] = $row;}echo json_encode($json);返回:[   {      "cTOTAL":399,      "cONTIME":155,      "cLATE":244,      "cPERCENTS":38,      "TOTAL":118,      "ONTIME":60,      "LATE":58,      "PERCENTS":50,      "KPI":"UP"   }]除了上述方法,我還嘗試了許多其他方法和示例,但似乎無法實現我需要的格式。我完全了解 PDO、準備好的語句、注入等!我只需要先格式化 JSON,但在此先感謝您的建議任何幫助將不勝感激 - PHP Noob
查看完整描述

1 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

這樣的事情應該工作:


$json = array();


while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {          

    foreach ($row as $fieldName => $fieldValue) {

        if (in_array($fieldName, ['cTOTAL', 'cONTIME', 'cLATE', 'TOTAL' ,'ONTIME', 'LATE'])) {

            $json[] = [

                "category" => $fieldName,

                "value" => $fieldValue,

                "color" => getColorByFieldName($fieldName),

            ];

        }

    }

}

echo json_encode($json);


function getColorByFieldName($fieldName) 

{

    if ($fieldName === 'ONTIME' || $fieldName === 'cONTIME') {

        return '#0f9b0f';

    }

    if ($fieldName === 'LATE' || $fieldName === 'cLATE') {

        return '#dd1818';

    }

    if ($fieldName === 'TOTAL' || $fieldName === 'cTOTAL') {

        return '#0575E6';

    }

}


查看完整回答
反對 回復 2021-07-16
  • 1 回答
  • 0 關注
  • 222 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號