我有一个表单,在提交后,我的控制器从该表单中获取数据,并发送给模型,以便根据_GET
信息从数据库中检索结果。
在我的表单中有两个字段,分别叫做min-year和max-year,我用它们在数据库的year列中搜索这些数字之间的值。提交后,_GET数组类似于'min-year'=>'something'
和'max-year'=>'something'
。
在提交之后,_GET数组类似于'min-year'=〉'something'和'max-year'=〉'something'。
HTML:
<input type='text' name='state' />
<input type='text' name='min-year' />
<input type='text' name='max-year' />
控制器:
$this->load->model('carinfo_model');
$where=($this->input->get());
$data['cars']=$this->carinfo_model->all_ad($where);
型号:
public function all_ad($where){
->select("*")
->from("cars")
->where($where)
$result=$this->db->get()->result_array();
return $result;
}
要将_GET
数组转换为'->where()'
可读的内容,以便在数据库的所有其他列以及年份列中的最小值/最大值之间进行搜索,最快的方法是什么?
我需要一个正确的方法来创建一个**'where'语句(字符串或数组),它包含所有其他输入字段加上一个'between'语句**,如果可能的话,所有这些都在一个来自$_GET信息的查询中
如果min-year、max-year或两者或任何其他字段由空值提交,则结果应基于其他字段,并且仍应能够从数据库中获取结果
请注意,我有这么多的其他输入字段,这只是表单的一部分。
4条答案
按热度按时间5rgfhyps1#
在视图中
在控制器中
**注意:**我没有测试这个代码与您的目的。有时,如果日期不工作在
$minyear
使用与date()
函数一样$minYear = date(date_format('Y-m-d', $min.'-01-01'));
编辑01**
在模型中
whitzsjs2#
试试这个。这是一个控制器函数代码。把它粘贴到你的控制器函数中,然后像你的数据库表字段名一样改变字段名。
在模型函数中发送where子句。
ffdz8vbo3#
你可以做一些像下面这样的事情。
在控制器中,获取不同变量中的两个值,如下所示:
然后将此变量传递到模型函数中,如下所示:
$this-〉模型名称-〉函数名称($min_year,$max_year);
在模型间使用查询如下:
在$result中,您将得到您的结果。
5jdjgkvh4#
试试这个。这是一个控制器函数代码。把它粘贴到你的控制器函数中,然后像你的数据库表字段名一样改变字段名。
在模型函数中发送where子句。