鍍金池/ 問答/PHP  數(shù)據(jù)庫(kù)/ thinkphp多表查詢后 輸出某個(gè)字段為數(shù)組

thinkphp多表查詢后 輸出某個(gè)字段為數(shù)組

$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);
 

說(shuō)明:
tieba--文章表 a
tieba_pics--文章圖片關(guān)聯(lián)表 p
admin_upload --圖片存儲(chǔ)表 b

圖片描述

回答
編輯回答
拽很帥

你這樣寫太麻煩了,框架有模型關(guān)聯(lián),直接用關(guān)聯(lián)就可以了!
比如圖片表:

images :id img_url

文章表:

article :title img_id

查詢的時(shí)候直接用一對(duì)一查詢簡(jiǎn)單完事,根本就不需要文章和圖片關(guān)聯(lián)表,主意主鍵和外鍵
在做商城的時(shí)候會(huì)有商品輪播圖介紹,會(huì)使用中中間表,框架用多對(duì)多查詢就可以了!

2017年10月29日 23:16
編輯回答
有點(diǎn)壞

終于研究出來(lái)了,看能不能幫到其他新手

            $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; 
            }  
          } 
2018年2月17日 07:08