检查一天中两个日期之间的可用性

时间:2017-03-13 05:11:58

标签: php mysql codeigniter codeigniter-datamapper

直升机, 我试图通过日历表在两个日期之间获得产品,我与产品有关系。

我把表格的数据放在了:

enter image description here

enter image description here

据我所知,如果我做一个foreach并且我每天都在检查,我可以得到它,但我不希望这样,我想用mysql正确地做到这一点

这是我目前正在执行的查询,并没有给我预期的结果。这是name the my page

    $start_date  = fecha_mysql_slash($this->input->get('start_date'));
    $end_date    = fecha_mysql_slash($this->input->get('end_date'));
    $calendars   = new Calendar();
    $calendars->select("*")
    ->where('day BETWEEN "'.$start_date.'" AND "'.$newEndDate.'" and availability > 0')
    ->include_related("producto",NULL,TRUE,TRUE)
    ->group_by("producto_id")
    ->get()->all;

现在我将尝试向我解释,通过表格我得到开始日期和结束日期,所以如果存在于“日期”字段中,我必须从开始日期到结束日期检查日历表。还有哪个可用性大于0.,对于这个查询,我无法得到它。

目前没有错误,问题是我得到的产品,当我指示的日期在表格和字段“日”中不存在时

例如我通过2017-03-13和2017-03-25的日期进行查询,我认为我不明白这个问题,因为我得到了产品ID,从2017-03-13开始没有这些产品的记录。

我希望你能帮助我,

非常感谢你。

1 个答案:

答案 0 :(得分:0)

你有:

$end_date    = fecha_mysql_slash($this->input->get('end_date'));

->where('day BETWEEN "'.$start_date.'" AND "'.$newEndDate.'" and availability > 0')

$ end_date是与$ newEndDate不同的变量。将$ newEndDate更改为$ end_date,它应该可以正常工作。