3 回答

TA貢獻2041條經驗 獲得超4個贊
只需使用fetch_array()或 (array) $myQuery將結果轉換為數組,然后:
json_encode($myQuery);
json_last_error(); // to see the error

TA貢獻1842條經驗 獲得超21個贊
$JsonData=array();
foreach($myQuery as $val){
$JsonData[]='
{
"player_name": "'.$val->player_name.'",
"player_team": "'.$val->player_team.'",
"contests": $val->contests
}
';
}
$expectedJson=implode(',',$JsonData);

TA貢獻1895條經驗 獲得超3個贊
您可以在單個 SQL 語句中執行此操作(為了更好地理解,我剛剛將其格式化為多行)。內部Select語句使用你的查詢作為子查詢,同時使用 JSON_OBJECT生成每一行的JSON對象,最后使用GROUP_CONCAT將每一行用逗號組合起來,然后將“[”和“]”添加到最終結果中用于創建完美的 JSON 數組。(另一種方式,除了json_encode($myQuery),更簡單的版本:) )。
SELECT CONCAT('[',
GROUP_CONCAT(
JSON_OBJECT(
'player_name', player_name,
'player_team' , player_team,
'contests', contests)
) , ']') as json
FROM (
SELECT player_name, player_team, SUM(ruckContests) as contests
FROM afl_master
WHERE player_team = "COLL" AND year = 1995 AND ruckContests > 0
GROUP BY player_name, player_team
ORDER BY SUM(ruckContests) DESC
LIMIT 2
) AS TT
- 3 回答
- 0 關注
- 227 瀏覽
添加回答
舉報