2013-07-11 37 views
1

3代表我有3個表:如何加入在笨

tbl_events - >主鍵= EVENT_ID

tbl_event_bids - >(event_id的是在它沒有主鍵)

tbl_users - >主鍵= U_ID

我想這些字段:

tbl_events - > ADDED_DATE

tbl_events - > bid_end_date

tbl_events - > EVENT_DATE

tbl_event_bids - > BID_AMOUNT

tbl_users - > u_fname

tbl_users - - > u_lname

沒有任何錯誤,但數組是空的。這段代碼中是否有錯誤?請幫助...

public function get_confirmed_events($loged_user_id){ 

    $this->db->select(' tbl_events.event_name, 
         tbl_events.added_date, 
         tbl_events.bid_end_date,        
         tbl_events.event_date, 

         tbl_event_bids.bid_amount, 

         tbl_users.u_fname, 
         tbl_users.u_lname'); 

    $this->db->where('tbl_events.u_id', $loged_user_id); 
    $this->db->where('tbl_events.closed_bid', 'N'); 

    $this->db->where('tbl_event_bids.bid_statues', 'W');   

    $this->db->join('tbl_event_bids', 'tbl_events.event_id = tbl_event_bids.event_id'); 
    $this->db->join('tbl_users', 'tbl_events.u_id = tbl_users.u_id'); 

    $data = $this->db->get('tbl_events'); 

    $confirmed_result = $data->result(); 

    return $confirmed_result; 


} 
+1

在使用where語句之前加入第一個表..如果你想加入第三個表..只需添加另一個$ this-> db-> join('')連接 –

+0

嘗試檢查print $ this-> db-> last_query()在您的查詢運行後打印。我發現調試sql查詢然後將更改返回到代碼更容易。 – complex857

回答

0

試試這個

public function get_confirmed_events($loged_user_id){ 
$this->db->select(' tbl_events.event_name, 
        tbl_events.added_date, 
        tbl_events.bid_end_date,        
        tbl_events.event_date, 
        tbl_event_bids.bid_amount, 
        tbl_users.u_fname, 
        tbl_users.u_lname');  
$this->db->join('tbl_event_bids', 'tbl_events.event_id = tbl_event_bids.event_id','LEFT'); 
$this->db->join('tbl_users', 'tbl_events.u_id = tbl_users.u_id','LEFT'); 
$this->db->where('tbl_events.u_id', $loged_user_id); 
$this->db->where('tbl_events.closed_bid', 'N'); 
$this->db->where('tbl_event_bids.bid_statues', 'W'); 
$data = $this->db->get('tbl_events'); 
$confirmed_result = $data->result(); 
return $confirmed_result; 
} 

我已經使用了LEFT JOIN如果要與其他的加盟可以在join()第三個參數指定它也看到您的查詢它的外觀像echo $this->db->last_query();

0

如果您正在使用的連接,您必須使用自,主表

public function get_confirmed_events($loged_user_id){ 

$this->db->select(' tbl_events.event_name, 
        tbl_events.added_date, 
        tbl_events.bid_end_date,        
        tbl_events.event_date, 

        tbl_event_bids.bid_amount, 

        tbl_users.u_fname, 
        tbl_users.u_lname'); 
$this->db->from('tbl_events'); 
$this->db->where('tbl_events.u_id', $loged_user_id); 
$this->db->where('tbl_events.closed_bid', 'N'); 

$this->db->where('tbl_event_bids.bid_statues', 'W');   

$this->db->join('tbl_event_bids', 'tbl_events.event_id = tbl_event_bids.event_id','left'); 
$this->db->join('tbl_users', 'tbl_events.u_id = tbl_users.u_id','left'); 

$data = $this->db->get(); 

$confirmed_result = $data->result(); 

return $confirmed_result; 

}

我希望它能幫到你。