我有3個表:Zend_Db的查詢連接兩個表
用戶[ID,姓名,用戶名,密碼,角色]
事件[ID,日期,地點,名稱]
參與者[ id,userId,eventId]
我想選擇給定用戶參與的所有事件。爲此,我創建了一個SQL查詢,我測試並返回了所需的結果。
SELECT * FROM event
INNER JOIN participant ON participant.eventId = event.id
WHERE participant.userId = $id
這個我試圖把它變成應該根據從本網站的其他職位工作過一個Zend請求後。
public function getEvents($id)
{
$db = Zend_Db_Table::getDefaultAdapter();
$select = $db->select();
$select->from('event')
->joinInner('participant','participant.eventId = event.id')
->where('participant.userId = ?', $id);
$res = $db->query($select)->fetchAll();
return $res;
}
我使用「PDO_MYSQL」作爲一個適配器,我沒有與插入到表中,選擇整個表或只是特定的行任何問題。但是,上面的代碼似乎做了一個簡單的fatchall(),我想要什麼。無論我嘗試改變它,它總是返回事件表內容。
我的問題是:有沒有人有一個想法,爲什麼會發生這種情況?
那裏的代碼除了構造查詢外什麼都不做。你可以發佈代碼顯示你如何執行它並獲取結果嗎?我試着查詢你的表結構,它工作得很好。 – drew010 2012-07-21 19:00:31
@ drew010這可能是我的問題的根源。我對zend和php都很陌生。我從我發現的不同教程以及zend頁面上的指南中學習。我正在將查詢轉發到視圖,我只是用for來列出它。這可能是我的問題。你能告訴我我需要做什麼來執行它嗎?我一直在尋找最近的30分鐘,但目前爲止沒有任何工作。 – 2012-07-21 19:36:56
@ drew010好的,我剛纔知道我的問題是什麼。我正在調用一種不同的方法。因爲我有一個名爲getAllEvents的方法,它沒有參數,但我用一個參數調用它,並沒有拋出任何錯誤或警告或任何東西。我現在就看到了。關於結果的執行和獲取,我稍微修改了我的代碼,我希望這樣做會很好,因爲現在它可以工作。 – 2012-07-21 19:54:31