[英]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.