如何创建模型函数,条件条件为数组

时间:2015-03-24 10:50:13

标签: php arrays json codeigniter

执行逻辑如下。

$condition = '';
if($_POST['name']!=''){
    $condition = $condition + 'cus.C_name' => $_POST['cname'];
}
if($_POST['cno']!=''){
    $condition = $condition + 'cus.C_name' => $_POST['cno'];
}

where子句必须包含

array('cus.C_name' => $_POST['cname'],'cus.C_name' => $_POST['cno'])

如果post变量存在,它将附加到数组。我是怎么做的

2 个答案:

答案 0 :(得分:1)

如果我没错,那会对你有帮助..

if($_POST['cname'] != ''){
   $this->db->where('cus.C_name', $_POST['cname']);
}

if($_POST['cno'] != ''){
   $this->db->where('cus.C_id', $_POST['cno']);
}

并使用$this->model->post()$this->model->get()

等ci方法

答案 1 :(得分:1)

你无法生产

array('cus.C_name' => $_POST['cname'],'cus.C_name' => $_POST['cno']);

基本上这个数组会产生

array('cus.C_name' => $_POST['cno']);

因为两个数组键都相同而且它将是一个元素;

您可以按照以下方式执行此操作

    if($_POST['name']!='')
    {
        $this->db->where('cus.C_name',$_POST['cname']);
    }

    if($_POST['cno']!='')
    {            
        $this->db->where('cus.C_name',$_POST['cno']);            
    }

这将产生你想要的地方条件。
Becarefull :如果你的名字和cno都不为空,那么它会产生where条件,你会得到空的结果,因为同一列不能同时具有这两个值。

更好地使用$this->input->post('name')启用CI url帮助程序而不是$_POST['name']

希望你明白并帮助你。