2014-04-10 41 views
0

是否有可能獲得變量的一部分並將其運行到where循環。我可以得到變量的一部分嗎?

function rapport_detail_kosten($idKlant){ 
      $this->db->from('Project'); 
       $this->db->join('Kosten', 'Kosten.idProject = Project.idProject'); 

if ($idKlant > 0){ 
     $this->db->where('idKlant', $idKlant);} 
     $query = $this->db->get(); 
      $project = array(); 
     foreach($query->result() as $row){ 
      $project[] = $row->idProject; 
     } 
     $hoi = implode(",", $project); 
      print_r($hoi); 
     $this->db->select_sum('Prijs'); 
     $this->db->from('Kosten'); 
     $this->db->where('Kosten.idProject',$hoi); 
     $query = $this->db->get(); 

     if($query->num_rows()>0){ 
      return $query->result(); 
     } 
     else{ 
      return false; 
     } 
    } 

$hoi的數值:14,79,9,85,85,85,85,91,6 這些都是編號的,但我想運行此WHERE語句,只有當id爲這個變量。所以我想運行ID = 6,但例如不id=7

+0

嘗試使用in_array之前執行到哪裏檢查它是否呈現與否 – senthilbp

+0

也試圖縮進/格式喲你的代碼更好,找到一個標準(像梨標準),並遵循它 –

+0

因此'$ hoi' = '14,79,9,85,85,85,85,91,6'和'$ idKlant'是id 。如果'$ idKlant'在'$ hoi'中,則運行where語句。這是你想要的嗎? –

回答

0

你可以用笨方法where_in,搜索數組內的值,在這種情況下,你可以直接使用$project,你不需要$hoi

試試這個:

$sum = 0; 
$this->db->select_sum('Prijs'); 
$this->db->from('Kosten'); 
$this->db->where_in('Kosten.idProject',$project); 
$query = $this->db->get(); 
foreach ($query->result() as $row){ 
    $sum = $row->Prijs; 
} 

return($sum); 

MANUAL

+0

這是我已經嘗試過的同樣的事情,但是當我有一個沒有在表Kosten.idProject ID。但使用相同的Klant.idKlant。那麼它得到相同的總和。當它不在數組中時,我需要輸出NUll或0 – Rene

+0

用不同的東西編輯答案@Rene –

相關問題