2009-08-19 1 views
2

Я понимаю использование Zend_Table и может получать данные с помощью функций Zend из таблицы, связанной с этим классом. Например, у меня есть видео таблицу и в другой таблице у меня есть связь между видео и какой категории он находится вОбъединение таблиц в модель в Zend Php

Im немного озадачен, как активен выберите как следующий в рамках:.

SELECT * FROM video,category WHERE category.category_id = 3 AND video.id = category.video_id 

Я хочу сделать это в видеомодее, которое относится к видео таблице.

ответ

0

Из того, что вы опубликовали, кажется, что между таблицами для видео и категорий существует взаимосвязь: в категории есть много видеороликов, а видео принадлежит к категории. Вы должны проверить this article на отношения Zend_Db_Table.

1

Это грубый класс. Он использует адаптер Zend db напрямую, поэтому объект zend_db_table на самом деле не знает отношения, но он работает.

class Video extends Zend_Db_Table 
{ 
    public function doQueryWithSql($id) 
    { 
    $qy = " SELECT * FROM video,category WHERE category.category_id = $id AND video.id = category.video_id "; 
    return $this->getAdapter()->fetchAll($qy); 
    } 

    public function doQueryWithObject($id) 
    { 
    $select = $this->getAdapter()->select(); 
    $select->from(array('v'=>'video')) 
      ->join(array('c'=>'category'),'v.id = c.video_id') 
      ->where("c.category_id = $id"); 
    return $this->getAdapter()->fetchAll($select); 
    } 
}