2013-10-18 43 views
0

我有這樣的查詢:PODS CMS不正確的查詢

$Record = new Pod('event'); 
$where_clause = "DATE(enddate) >= CURDATE() AND event_type.name='Training'"; 
$Record->find('startdate ASC', 100, $where_clause); 

,而我有2個符合查詢它返回只有1項。

我必須檢查每個查詢:

$Record = new Pod('event'); 
$where_clause = "DATE(enddate) >= CURDATE()";// AND 
$Record->find('startdate ASC', 100, $where_clause); 

而且

$Record = new Pod('event'); 
$where_clause = "event_type.name='Training'";// AND 
$Record->find('startdate ASC', 100, $where_clause); 

我得到了兩個查詢2項。

你能提供一些提示來解決這個問題嗎?提前致謝。

回答

2

您使用的代碼被設計爲與Pods 1.X一起使用,但您的查詢本身看起來不錯。對於Pod 2.X,您需要執行下面的代碼,該代碼將pods()全局函數與其方法find相結合,然後使用total方法檢查返回的項目數。

$param = array( 
    "where" => "DATE(enddate) >= CURDATE() AND event_type.name='Training'", 
    "orbery" => "t.startdate ASC", 
    "limit" => "100", 
); 
$pod = pods('event', $param); 
$number = $pod->total(); 

你知道有$莢記錄,並在$數量總數,你可以用它來控制循環,當你遍歷$莢的結果。如果你想要,你可以使用total_found來獲得如果你沒有限制它將返回的記錄數。

另外,你是否檢查過,你確實有兩條記錄應該返回。有可能當你將兩個查詢結合起來時,只有其中一個滿足兩個條件。

您還應該查看Perry Bonwell's tutorial他解釋如何查詢未來事件。他使用PHP而不是SQL函數來處理日期,但否則他有類似的方法。

+1

高質量的答案! –

+0

非常感謝,JPollock。 –