thinkphp多表查询后 输出某个字段为数组

$tiebalist= Db::name("tieba")->alias("a")
    ->join("tieba_pics p", "a.id=p.tid", 'LEFT')    
    ->join("admin_upload b", "p.cover=b.id", "LEFT")
    ->join("member m", "a.user_id=m.id", "LEFT")
    ->join("tieba_list c","a.cate_id=c.id","LEFT")
    ->field("a.id,c.cate_name,a.title,m.username,b.url,a.content,a.create_time")   
    ->order("a.id desc")
    ->limit(6)
    ->select();     
    $list['tiebalist']=$tiebalist;     
    ajaxmsg('ok', 1, $list);
 

说明:
tieba--文章表 a
tieba_pics--文章图片关联表 p
admin_upload --图片存储表 b

图片描述

阅读 4.9k
2 个回答

终于研究出来了,看能不能帮到其他新手

            $newArray = array();  
            foreach ($tieba_list as $row) {                
                $key = $row['id'];  
                if (array_key_exists($key, $tmpArray)) {   
                    if (is_array($tmpArray[$key]['url'])) {  
                        $tmpArray[$key]['url'][] = $row['url'];  
                    } else {  
                        $tmpArray[$key]['url'] = array($tmpArray[$key]['url'], $row['url']);  
                    }  
                } else {  
                $tmpArray[$key] = $row; 
            }  
          } 

你这样写太麻烦了,框架有模型关联,直接用关联就可以了!
比如图片表:

images :id img_url

文章表:

article :title img_id

查询的时候直接用一对一查询简单完事,根本就不需要文章和图片关联表,主意主键和外键
在做商城的时候会有商品轮播图介绍,会使用中中间表,框架用多对多查询就可以了!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题