【问题标题】:Check availability between two dates in a day field检查日期字段中两个日期之间的可用性
【发布时间】:2017-03-13 05:11:57
【问题描述】:

嘿嘿, 我正在尝试通过与产品有关系的日历表在两个日期之间获取可用的产品。

我把我表的数据:

我知道如果我做一个 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 开始没有这些产品的记录。

希望你能帮帮我,

非常感谢。

【问题讨论】:

  • 错误是什么?试试这个。 BETWEEN ("'.$start_date.'" AND "'.$newEndDate.'" ) 和
  • 我刚试过,括号里的它对我不起作用。目前没有错误,问题是我得到产品,当我指出的日期在表格和字段“天”中不存在时
  • SELECT * from products WHERE (products.day BETWEEN '2017-03-12' AND '2017-03-16')
  • 我刚刚模拟了案例prntscr.com/ej9oh3看看
  • 例如我通过日期 2017-03-13 和 2017-03-25 进行查询,我认为我不明白的问题,因为我得到了产品 id,从 2017-03 -16 没有这些产品的记录。

标签: php mysql codeigniter codeigniter-datamapper


【解决方案1】:

你有:

$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,它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 2013-10-04
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    相关资源
    最近更新 更多