我需要通過查詢檢索產品可用性。我在使用的CMS是MODX。檢查產品的可用性
我的數據庫是這樣的:
攝像機
中間
模型
SKU
出租
CID
中期(這對應於從以上所述中旬)
start_date
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個相機到數據庫中進行測試,並增加了一個爲租,但是查詢繼續返回'有5個相機可用'。它沒有拿起'預訂'的相機。
我不熟悉modx,但我認爲你的查詢應該在'WHERE'子句中有'Rentals.start_date'和'Rentals.end_date'。看看這些文檔,我認爲你需要http://rtfm.modx.com/display/xPDO20/xPDOQuery.where和http://rtfm.modx.com/display/xPDO20/xPDOQuery.andCondition來執行'WHERE' /'和'。 – Sean
謝謝@Sean這工作。這是我缺乏'where'條款。這些鏈接是非常有用的...現在書上標記:) – camelCase