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 关注
- 203 浏览
添加回答
举报