SQL分组数据如何生成JSON格式输出?

sql分组数据如何生成json格式输出?

分组分类查询输出 json

问题:

如何根据 sql 中分组后的数据生成 json 输出?本文将以一个实际示例展示如何实现这一操作。

假设数据库结构:

分类表(class):

cid(主键)cname(分类名称)

详情表(detail):

did(主键)cid(分类 id)simplew(简单单词)detailw(详细信息)uid(用户 id)

目标:

根据分类,将 detail 表中的数据按照以下 json 结构输出:

{  "data": [    {      "name": "分类名称",      "list": [        {          "wid": "单词 id",          "simplew": "简单单词",          "detailw": "详细信息"        }      ]    }  ]}

解决方案:

 0,    'msg' => 'ok',    'data' => [],];// 暂存查询结果$result = [];// 查询分类$queryClass = mysqli_query($conn, "SELECT cid, cname FROM class WHERE uid = 'common'");while ($rclass = mysqli_fetch_array($queryClass)) {    // 创建新的分类项    $item = [];    $item['name'] = $rclass['cname'];    // 查询分类下的详情    $queryDetail = mysqli_query($conn, "SELECT wid, simpleW, detailW FROM detail WHERE uid = 'common' AND cid = " . $rclass['cid']);    while ($rdetail = mysqli_fetch_array($queryDetail)) {        // 将详情添加到分类项的列表中        $item['list'][] = [            'wid' => $rdetail['wid'],            'simpleW' => $rdetail['simpleW'],            'detailW' => $rdetail['detailW'],        ];    }    // 将分类项添加到结果中    $result[] = $item;}// 将结果赋值到 JSON 响应中$response['data'] = $result;// 设置响应头header('Content-Type: application/json');// 输出 JSON 响应echo json_encode($response, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);die();

对比:

与原来的 echo 输出方式相比,主要的修改点在于:

将 echo 输出的内容转为数组存储。初始化一个数组 $result 来存放分类结果。为每个分类创建一个 $item 数组,包含 name 和 list 字段。遍历详情结果,将详情添加到每个分类的 list 数组中。最后,将 $result 数组赋值给 json 响应中的 data 字段。设置响应头为 json 类型。使用 json_encode 将数组转为 json 字符串并输出。

以上就是SQL分组数据如何生成JSON格式输出?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1251784.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 23:27:54
下一篇 2025年12月9日 23:28:14

相关推荐

发表回复

登录后才能评论
关注微信