2010-11-19 95 views
3

我有以下查詢:如何加入兩個表在Zend和讀取結果數據

$usersTable = new Users(); 

$rowset = $usersTable->select() 
    ->setIntegrityCheck(false) 
    ->where('id = ?', $userId) 
    ->join('Books', 'Books.userid = Users.id'); 

但是,我不能爲我的生活弄清楚如何去讀取結果行集(名單與用戶關聯的書籍)。

我會做以下工作嗎?

foreach ($book in $rowset->Books) { 
    print_r($book["book_name"]); 
} 

回答

0

你所說的$ rowset實際上是一個sql表達式。 這應該工作:

$usersTable = new Users(); 

$sql = $usersTable->select() 
    ->setIntegrityCheck(false) 
    ->where('id = ?', $userId) 
    ->join('Books', 'Books.userid = Users.id'); 
$rowset = $usersTable->getAdapter()->fetchAll($sql); 
0

試着這麼做:

$sql = $this->select() 
->setIntegrityCheck(false) 
->where('id = ?', $userId) 
->join('Books', 'Books.userid = Users.id') 
); 
$rowset = $this->fetchRow($sql); 
foreach ($rowset as $book) { 
    print_r($book["book_name"]); 
} 

難道這會在你的模型?

+0

恐怕這不會工作,因爲你在你的選擇使用連接。在提取之前,您應該使用getAdapter。 – mik 2010-12-01 15:05:56