在Codeigniter中创建大型动态查询的最佳方法?

时间:2012-11-01 14:39:33

标签: php mysql codeigniter

该方案是一个报告应用程序。到目前为止,我使用的MVC应用程序通常具有响应一个特定问题的模型方法(即get_username_from_id($id))。我想要做的是有一个查询,可以根据所选的复选框响应多种不同的方式。

所以 - 例如,我可能在select中只有一个查询,或者在select中可能有100个内容。我这样做的方式,它变得很乱。例如,我结束了这样的事情:

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

这种事情有最好的做法吗?或者甚至是一种处理组的方法,所以没有更多的额外代码?我知道这是开放式的,我可能甚至没有正确地表达我的问题。非常感谢那些能够帮助我提出正确问题的人们。

1 个答案:

答案 0 :(得分: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功能。问题是很多关于你想做什么的细节以及真实数据和代码的样本,所以这是我到目前为止所建议的。