2014-07-11 14 views
0

我想創建志願者數據庫中的用戶列表,基於那些活躍成員以及他們志願參加的工作。codeigniter倍數或在哪裏,無視哪裏不是

問題是,它也包括非活動成員。

這裏是我的控制器

function View_Vol_LIST() 
{ 
$data = array(); 

    if($query = $this->report_model->Volunteer_list()) 
    { 
     $data['records'] = $query; 
    } 
$data['main_content'] = 'volunteer_list'; 
$this->load->view('includes/template', $data); 
} 

這裏是我的模型

function Volunteer_list() 
{ 
    $query = $this->db->order_by('Last_Name', "ASC"); 
    $query = $this->db->order_by('First_Name', "ASC"); 
    $query = $this->db->where('Membership_Status !=', 'DNR'); 
    $query = $this->db->where('Vol_FA =', 'yes'); 
    $query = $this->db->or_where('Vol_TEL =', 'yes'); 
    $query = $this->db->or_where('Vol_CD =', 'yes'); 
    $query = $this->db->or_where('Vol_SCBA =', 'yes'); 
    $query = $this->db->or_where('Vol_MAIL =', 'yes'); 
    $query = $this->db->or_where('Vol_SML =', 'yes'); 
    $query = $this->db->or_where('Vol_BODCOM =', 'yes'); 
    $query = $this->db->or_where('Vol_OTHER =', 'yes'); 
    $query = $this->db->get('Membership'); 
    return $query->result(); 

看來,or_where完全覆蓋的地方!= DNR(沒有續約)

幫助!

謝謝!

+0

回聲這個 - > DB-> last_query()我敢打賭,邏輯是不是你期望它你可能不得不手工編寫它來獲得括號中正確的地方 –

回答

1

嘗試像活動記錄你這是嵌套查詢在笨

public function Volunteer_list(){ 
    $this->db->order_by('Last_Name', "ASC"); 
    $this->db->order_by('First_Name', "ASC"); 
    $this->db->where('Membership_Status !=', 'DNR'); 
    $this->db->where("(Vol_FA='yes' 
         OR Vol_TEL = 'yes' 
         OR Vol_CD='yes' 
         OR Vol_SCBA='yes' 
         OR Vol_MAIL='yes' 
         OR Vol_SML='yes' 
         OR Vol_BODCOM ='yes' 
         OR Vol_OTHER ='yes')", NULL, FALSE); 
    $query = $this->db->get('Membership'); 
    return $query->result(); 
} 

NULL是不允許的參數值在查詢和FALSE是刪除查詢報價。

這會產生這樣的:

SELECT * FROM (`Membership`) 
WHERE `Membership_Status` != 'DNR' 
AND (Vol_FA='yes' 
    OR Vol_TEL = 'yes' 
    OR Vol_CD='yes' 
    OR Vol_SCBA='yes' 
    OR Vol_MAIL='yes' 
    OR Vol_SML='yes' 
    OR Vol_BODCOM ='yes' 
    OR Vol_OTHER ='yes') 
ORDER BY `Last_Name` ASC, `First_Name` ASC 
+0

當我使用上述代碼時沒有記錄被返回。 – JonYork

+1

然後沒有數據,這意味着或者你忘了一些東西,檢查這個小提琴的工作示例:http://sqlfiddle.com/#!2/483591/1/0 – Burak

+0

我很抱歉傢伙,忘記了返回$ query- >結果();很愚蠢的我,很好用!謝謝! – JonYork