如何在CodeIgniter上构建搜索引擎上的条件

时间:2011-09-15 20:52:28

标签: php mysql codeigniter

CodeIgniter应用程序有一个搜索引擎,我想为结果添加条件。 模型中的一些代码:

$this->db->select(users.country_symbol);

function getUsers($conditions=array())
{
    //Check For Conditions
    if (is_array($conditions) and count($conditions)>0)     
        $this->db->where($conditions); 
}

在控制器上我有:

$users = $this->search_model->getUsers(NULL)

如何将NULL更改为请求具有与$this->loggedInUser->country_symbol相同country_symbol的用户的条件?

1 个答案:

答案 0 :(得分:0)

您可以像这样修改您的功能:

function getUsers($conditions = array())
{
    if (is_array($conditions) && count($conditions) > 0) {
        foreach ($conditions as $condition) {
            $this->db->where($condition['where'], $condition['value']);
        }
    }

    // return results...
}

然后你可以这样做:

$conditions = array(
    array('where' => 'country_symbol =', 'value' => $this->loggedInUser->country_symbol),
    array('where' => 'zip_code', 'value' => '12345'),
    // and so on...
)

$users = $this->search_model->getUsers($conditions);

我没有测试过这段代码,但这是基本的想法。您需要遍历条件数组并使用$this->db->where()或类似函数应用每个条件。