mysql查询拼接json数据_在数据库中读出数据组成json格式,如何实现用递归的方式实现json的拼接...

菜鸟就是菜鸟,该给的没给,我也懒得问了,我假设消息表结构为,name,userid,time,reid

reid表示接收者的id,那么表数据就类似这样,

name, userid, time, reid

qqq, 34013, 2015/2/11 9:44:22, 34362

aaa, 34362, 2015/2/11 9:45:50, 34484

....

算法步骤,

1将数据的层级关系转为数组的维数关系

2将数组转为json数据

$arr = get_category();//将数据变为数组格式

$json = arr_to_json($arr);//将数组变为json数组,所有语言都会提供这种函数的。

代码用php写的,你懂不懂都算了

function get_category($re_id=0,$flag=true){

$arr=array();

if($flag){

$sql = "select * from message a left join message b on a.userid=b.reid where b.userid is NULL";//查询第一级的数据,也就是userid没有在reid中出现过的数据

}else{

$sql = "select * from message where userid=$re_id";//查询子级数据

}

$result = array(a_object,b_object,,,)=sql_query($sql);//查询结果一个数组或列表格式

if($result){

foreach($result as $re){//循环数组

if(get_category($re.reid,false))//如果子级不为空

$re['receive'] = get_category($re.reid,false);

$arr[] = $re;

}

return $arr;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值