2012-12-12 83 views
0

我想知道如何檢查表中是否存在值(管理器),然後根據表中是否存在值添加'yes'或'no'字符串。如何檢查查詢結果中的值是否爲空? - 活動記錄 - CodeIgniter

$this->db->select('employees.first_name, employees.last_name, departments.department_name, departments.department_numb, titles.title'); 
      $this->db->from('employees'); 
      $this->db->where('first_name', $firstname); 
      $this->db->where('last_name', $lastname); 
      $this->db->join('department_manager', 'department_manager.emp_numb = employees.emp_numb', 'inner'); 
      $this->db->join('departments', 'departments.department_numb = department_manager.department_numb', 'inner'); 
      $this->db->join('titles', 'titles.emp_numb = employees.emp_numb', 'inner'); 
      $this->db->where('department_name', $dept); 
      $this->db->where('title', $jobtitle); 
      $result = $this->db->get(); 

      $data = array(); 
      foreach($result->result() as $row) 
      { 
       $entry = array(); 
       $entry['firstname'] = $row->first_name; 
       $entry['lastname'] = $row->last_name; 
       $entry['jobtitle'] = $row->title; 
       $entry['dept'] = $row->department_name; 
       $entry['deptid'] = $row->department_number; 
       //$entry['ismanager'] = 

       $data[] = $entry; 
      } 
      return $data; 

我要檢查員工是否是存在於由員工數量連接的表'department_manager'。因此,如果該員工編號不存在於表'department_manager'中,那麼我想在數組索引$entry[ismanager']中插入一個字符串'',如果員工編號存在於表'department_manager'中,那麼我想要$entry['ismanager']握住字符串'是'。

但我很困惑如何檢查員工是否在該表中。我是在活動記錄查詢中還是在foreach循環中執行?如果它在foreach循環中完成,那麼在查詢完成時如何進行比較?

回答

1

爲什麼有一個領域,基本上是一個計算值?這就像每個盒子有數量的字段,盒子的數量然後將總項目保存到第三個字段。切勿通過快速查詢將數據保存到數據庫中。在上面的查詢中,這與將部門經理加入左加入一樣簡單,包括部門經理ID,並說明該字段在記錄中爲空,但該人員不是經理。使用LEFT連接將返回所有記錄,無論它們是否在管理表中都有條目。

將department_manager.emp_numb添加到select。

的加入:

$this->db->join('department_manager', 'department_manager.emp_numb 
= employees.emp_numb', 'left'); 

然後在foreach:

if(!$row->department_manager.emp_numb) 
{ 
    this person is not a manager; 
} 

如果你覺得你真的必須有額外的字段,那麼你仍然可以通過上述的方法填充它。

+0

感謝您的輸入,我已經想出瞭如何檢查是否存在值存在,但當員工不是經理時,我得到一個空的JSON字符串。否則,它會返回經理人員的罰款。我用了一個類似於你用來實現這個的if語句 – a7omiton

+0

這個return語句應該填充你的json嗎?如果這樣,將無法正常工作。打印json_encode($ data);將。 –

+0

是的我沒有json編碼在我的控制器中,這是在我的模型中生成 – a7omiton

1

如果你正在使用MySQL,我認爲你正在尋找:

IFNULL(expr1,expr2) 

其中:

expr1 == null condition (in your case NULL) 

expr2 == replacement value 

來源:Control Flow Functions

+0

是的,我做到了這一點,但出於某種原因,當我計算查詢時,如果該員工編號不在表'department_manager'中,我得到一個空的JSON對象。需要弄清楚爲什麼現在.. – a7omiton

相關問題