繁体   English   中英

如何在我的日期过滤器中获得结果?

[英]How do I get results in my date filter?

我想使用表单字段FROMDATETODATE创建日期过滤器。

这将提供从开始日期到结束日期的范围的结果。

这是我的模型

function search($status,$from,$to){
  if( $status =="" || $from =="" || $to =="") {
   $this->db->select('a.*');
   $this->db->from('acc a');
  }

  if( $status !="" || $from !="" || $to !="") {
    $this->db->like('status', $status);
    $this->db->where('fromdate <=',$from);
    $this->db->where('todate >=',$to);
  }

  $result = $this->db->get();
  //echo $this->db->last_query();

  return $result->result();
}

我的问题是我看不到任何结果。 有没有人看到我的错误是什么?

可能的问题 #1

如果声明表的短名称,则必须使用它。 你声明的acc表的短名称作为a 所以你必须在like where使用它:

$this->db->like('a.status', $status);
$this->db->where('a.fromdate <=', $from);
$this->db->where('a.todate >=', $to); 

可能的问题 #2

也许您的问题是 DATE 的格式。 我假设您使用DATE作为数据库中的行类型。 您的DATE行可能使用YYYY-mm-dd格式。 如果您的$from$to变量不使用此格式,则此查询将不正确。

您可以通过将它打印到您的控制器(然后die(); )或您的日志文件来检查它。 您可以使用该命令从任何地方记录任何内容(如果您在application/config.php启用它):

log_message("error", "this is the text of your log message from date: " . $from . ", and to date: " . $to);

日志文件位于application/logs文件夹中。

提示:

最好使用 AND ( && ) 运算符声明if statement ,因为在此函数中您必须声明所有变量。

我希望我能帮助你解决这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM