我需要通过查询检索产品可用性。我的CMS是MODX。
我的数据库是这样的:
摄像机
中间
模型
库存单位
租金
cid公司
mid(这对应于上面的mid)
开始日期
结束日期
我的问题是根据相机是否是“租来的”来定位它们的可用性。
用户选择开始和结束日期,选择“定位相机”,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个摄像头可用”。它没有拿起“预定”的相机。

最佳答案

你应该拿起有出租的相机。startdate>=enddate

Rentals.enddate选择

10-06 02:08