检查产品的可用性

时间:2013-08-04 00:08:47

标签: php mysql sql arrays modx

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

我的数据库是这样的:

照相机
中期
模型
SKU

出租
CID
mid(这相当于上面的中间)
起始日期
END_DATE

我的查询是根据相机的租用情况来确定相机的可用性。

用户选择他/她的开始和结束日期,选择“定位摄像头”。并且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个摄像头进行测试,并添加了一个作为租用的摄像头,但查询继续返回&#39;有5个摄像头可用&#39;。它没有拿起预订的相机。

1 个答案:

答案 0 :(得分:1)

您应该选择具有Rentals.startdate&gt; = enddate的相机 要么 Rentals.enddate&lt; = startdate

&lt; =或&lt;之间的选择取决于startdate的语义(包括或不包含)