用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1586|回复: 2
收起左侧

json生成的写法

[复制链接]
发表于 2015-5-21 15:39:37 | 显示全部楼层 |阅读模式
我有两个数据表,其中 photos 表结构和部分数据如下

photoid photoname
1 1.png

2 2.png

3 x.png

4 w.png

表 photocomment 的结构和部分数据如下

pcid photoid commentcontent

1 2 here some comments

我想生成下面这样的字符串

{
    "status":"1",
    "fbmsg":"success",
    "photolist":[
    {
        "photoid":"1",
        "photoname":"1.png",
        "commentlist":[
         {
            "pcid":"1",
            "commentcontent":"here some comments"
          },
          //... 更多内容
         ]
       },
        //.... 更多内容
     ]
    }
在 CI controller中我的写法是

  $this->load->model('bbs_model');
  $query = $this->bbs_model->listphotos();
  if ($query) {
    echo json_encode(array(
      'status' => 1,
      'fbmsg' => 'success',
      'typelist' => $query
    ));
    exit();
  }
在CI model中是下面代码

  function listphotos()
  {
    $query = $this->db->query("select * from photos order by photoid asc");
    return $query->result_array();
   }

请问如何才能生成我想生成的json字符串呢?

发表于 2015-5-22 13:29:35 | 显示全部楼层
图挂了..
另外你要测试json的写法就不需要放在这么复杂的一个方法里,而应该创建一个单独的方法里,例如:
function test(){
echo json_encode(array(
      'status' => 1,
      'fbmsg' => 'success',
      'typelist' => $query));
}

送上一句话!
A key to being an effective programmer is maximizing the portion of a program that you can safely ignore while working on any one section of code.
发表于 2015-5-22 13:39:02 | 显示全部楼层
这里连表查吧,然后循环生成数组再encode一下

本版积分规则