gpt4 book ai didi

database - 从 codeigniter 中的 $_GET 数据在数据库中的最小值和最大值之间搜索

转载 作者:搜寻专家 更新时间:2023-10-30 22:59:56 24 4
gpt4 key购买 nike

我有一个表单,提交后我的 Controller 从该表单获取数据并发送到模型以根据 _GET 信息从数据库中检索结果。

在我的表单中,有两个字段称为 min-year 和 max-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' />

Controller :

$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 或两者或任何其他字段由空值提交,结果应基于其他字段,并且仍然可以从数据库中获取结果

请注意我还有很多其他输入字段,这只是表格的一部分。

最佳答案

在 View 中

<a href="<?php echo base_url() ?>Controller/Method/MinYear/MaxYead"></a>
<a href="<?php echo base_url() ?>welome/diff/2013/2016"></a>

在 Controller 中

public function diff($min, $max) # Informing method there can be 2 input parameter from URL.
{
$now = date("Y");
$minYear = date_format('Y-m-d', $min.'-01-01');
$maxYear = ($now == $max) ? date("Y-m-d") : date_format('Y-m-d', $max.'-12-31');

# in $maxYear if year is current year we cant take 2016-12-31. So we use Current timestamp.
# If its not current year then we use 12-31. Ex 2014-12-31

}

Note: I have not tested this code with your purpose. Sometimes if date not worked in $minyear use with date() function like this $minYear = date(date_format('Y-m-d', $min.'-01-01'));


编辑 01

public function diff()
{
$min = $this->input->get('min-year');
$max = $this->input->get('max-year');
$state = $this->input->get('state'); # updated

$now = date("Y");
$minYear = date_format('Y-m-d', $min.'-01-01');
$maxYear = ($now == $max) ? date("Y-m-d") : date_format('Y-m-d', $max.'-12-31');

$data['cars'] = $this->carinfo_model->all_ad($minYear, $maxYear, $state); # updated
}

在模型中

public function all_ad($minYear, $maxYear, $state)  # updated
{
$this->db->select(*);
$this->db->from('cars');
$this->db->where('field_name BETWEEN date($minYear) AND date($maxYear)');
$this->db->where('field_name', $state ); # updated
$query = $this->db->get();
$result = $query->->result_array();
return $result;
}

关于database - 从 codeigniter 中的 $_GET 数据在数据库中的最小值和最大值之间搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35096657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com