2012-11-01 125 views
0

該場景是一個報告應用程序。迄今爲止,我一直使用的MVC應用程序通常具有響應某個特定問題的模型方法(即get_username_from_id($id))。我期望做的是有一個查詢可以根據所選的複選框以多種不同的方式作出響應。在Codeigniter中創建大型動態查詢的最佳方法?

因此 - 例如,我可能在查詢時只選擇了一件事物,或者它可能在選擇中有100件事情。我做到這一點的方式很快就變得凌亂了。例如,我結束了這樣的事情:

if(in_array("id", $grain)){ 
    $sql .= "table.id id, "; 
} 

這種事情是否有最佳實踐?或者甚至是一種處理該組的方式,所以沒有更多額外的代碼?我知道這是開放式的,我可能甚至沒有正確地說出我的問題。甚至對能夠加入並幫助我提出正確問題的人們也表示非常讚賞。

回答

0

我用的是這樣的:

function apply_filters ($filters) 
{ 
     if(isset($filters['user_id']) AND !empty($filters['user_id'])) 
     { 
       $this->db->where('user_id', $filters['user_id']); 
     } 
} 
function get ($filters) 
{ 
     $this->apply_filters($filters); 
     return $this->db->get('favourites')->result(); 
} 
function update ($filters, $data) 
{ 
     $this->apply_filters($filters); 
     $this->db->update('favourites', $data); 
} 

你應該能夠在apply_filters功能擴展到您的需求。這個問題不遺餘力地詳細描述你想要做什麼以及真實數據和代碼的樣本,所以這就是我目前所能提出的建議。

相關問題