2012-12-04 34 views
0

我想問一下,在連接後指定where子句以便將數據與用戶輸入相匹配。例如說我有以下代碼:在JOIN子句後面指定WHERE子句 - Active Record - CodeIgniter

$this->db->select('user.*,role.*') 
    $this->db->from('user'); 
    $this->db->where('user.username', $username); 
    $this->db->where('user.password', $password); 
    $this->db->join('role','role.id = user.role_id') 
    $result = $this->db->get(); 

,我想查詢從表中「角色」的匹配數據:

$this->db->select('user.*,role.*') 
    $this->db->from('user'); 
    $this->db->where('user.username', $username); 
    $this->db->where('user.password', $password); 
    $this->db->join('role','role.id = user.role_id') 
    $this->db->where('role.speaker', $speaker); //want to know if this is correct 
    $result = $this->db->get(); 

這可能嗎?我可以在JOIN後比較結果(使用WHERE)嗎?這會產生匹配WHERE子句的結果嗎?

謝謝!

回答

4

在調用->get()之前CodeIgniter實際上並不構建查詢。你可以按你想要的順序調用這些方法。

+0

好吧,這太好了,謝謝你的回覆! – a7omiton

0
$this->db->select(array('tbl_board_type_details.id','tbl_board_type_details.price','tbl_bord_type.bord_type_name')); 
    $this->db->from(array('tbl_board_type_details')); 
    $this->db->join('tbl_bord_type','tbl_bord_type.id=tbl_board_type_details.board_type_id'); 
    $this->db->where('tbl_board_type_details.hotel_id', $id); 
    $query = $this->db->get(); 
    $boardtype_result = $query->result(); 
    $data['boardtype_result'] = $boardtype_result; 

您可以試試這段代碼。它工作正常..