[英]how to search fields on database with date range on mysql codeigniter
我曾尝试创建一个带有日期范围过滤器的搜索引擎,但是每当我在“ search_textbox”上键入内容时,它都不会包含日期,它只会搜索包含“%a%”之类的语句“名称”的字段;
if($search !=''):
$added_query = "and date_created like '%".$search."%' or
name like '%".$search."%' or
alias like '%".$search."%' or
designation like '%".$search."%'
";
else:
$added_query ="";
endif;
$project_details = $this->db->query("SELECT *
FROM ".$query."_man_power
WHERE date_created BETWEEN '".$date_from."' AND '".$date_to."'
".$added_query."
order by date_created desc
");
return $project_details;
您可能没有正确格式化where子句中的日期。 请参阅: https : //www.w3schools.com/SQl/sql_dates.asp
您要确保$date_from
和$date_to
看起来像以下类型,具体取决于类型:
$date_from = '2018-06-01 0:00:00';
$date_to = '2018-06-30 23:59:59';
您可以通过查看查询来更好地检查查询以发现问题。
$sql = "SELECT * FROM ".$query."_man_power";
$sql .= " WHERE date_created BETWEEN '".$date_from."' AND '".$date_to."'".$added_query;
$sql .= " order by date_created desc";
var_dump($sql);
$project_details = $this->db->query($sql);
当组合这些条件时,重要的是使用括号,以便数据库知道对每个条件求值的顺序。因此,将AND,OR条件与括号进行分组,例如:-
if($search !=''):
$added_query = "and (
date_created like '%".$search."%' or
name like '%".$search."%' or
alias like '%".$search."%' or
designation like '%".$search."%'
)";
else:
$added_query ="";
endif;
$project_details = $this->db->query("SELECT *
FROM ".$query."_man_power
WHERE date_created BETWEEN '".$date_from."' AND '"
.$date_to."'".$added_query." order by date_created desc");
return $project_details;`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.