【问题标题】:Checking availability of product检查产品的可用性
【发布时间】:2013-08-04 00:08:46
【问题描述】:

我需要通过查询检索产品可用性。我使用的 CMS 是 MODX。

我的数据库是这样的:

相机

型号
sku

出租
cid
中间(这对应于上面的中间)
开始日期
结束日期

我的查询是根据是否“租用”来定位相机的可用性。

用户选择他/她的开始和结束日期,选择“定位相机”,mysql 查询如下所示:

    $a = $modx->newQuery('Cameras');
    $a->leftJoin('Rentals','Rentals',array('Rentals.mid = Cameras.mid'));
    $a->select(array('Rentals.start_date' <= $start_date(POST data from previous page)));
    $a->select(array('Rentals.end_date' >= $end_date(POST data from previous page)));
    $a->select(array('Cameras.*','Rentals.cid as customerid','Rentals.start_date as start'));
    $availability = $modx->getCollection('Cameras',$a);

    $ret = '<p>There are '. count($availability) . ' cameras available</p>';

我在数据库中添加了 5 个摄像头进行测试,并添加了一个作为租用的,但是查询继续返回“有 5 个摄像头可用”。它没有拿起“预订”的相机。

【问题讨论】:

标签: php mysql sql arrays modx


【解决方案1】:

您应该选择具有 Rentals.startdate >= enddate 的相机 或者 Rentals.enddate

【讨论】:

  • 感谢您的提示。与 Sean 的上述代码结合使用时,代码运行良好。
猜你喜欢
  • 2019-07-31
  • 1970-01-01
  • 2016-11-13
  • 2017-05-13
  • 1970-01-01
  • 2019-06-20
  • 1970-01-01
  • 2020-06-03
相关资源
最近更新 更多