mysql - 从 Zend Framework 中的 2 个或更多相关表中获取值

标签 mysql zend-framework parent-child parameter-passing zend-db

我是 Zend Framework 的新手(也是这个论坛的新手:D),如果您想从 3 个相关表中获取数据,我发现这个棘手的问题。比方说,如果我有这些 sql 查询:

SELECT p.painting_id, p.painting_title ,p.painting_filename,a.artist_name,c.pc_name FROM painting p, artist a, painting_category c WHERE a.artist_id=p.artist_id AND c.pc_id=p.pc_id;

我也想这样做:

SELECT p.painting_id, p.painting_title ,p.painting_filename,a.artist_name,c.pc_name FROM painting p, artist a, painting_category c WHERE a.artist_id=p.artist_id AND c.pc_id=p.pc_id AND p.painting_id= $p_id;

情况是,首先,我想显示所有画作(带有艺术家姓名和类别),然后,当用户单击该画作时,它将转到另一个页面并仅显示该画作(带有艺术家姓名)以及类别)。

我在模型方面取得了这样的进步:

类Application_Model_DbTable_Painting扩展了Zend_Db_Table_Abstract {

protected $_name = 'painting';
protected $_referenceMap    = array(
    'Artist' => array(
        'columns'           => array('artist_id'),
        'refTableClass'     => 'Artist',
        'refColumns'        => 'artist_id'
    ),
    'PaintingCategory' =>array(
        'columns'           => array('pc_id'),
        'refTableClass'     => 'PaintingCategory',
        'refColumns'        => 'pc_id'
    )
    );

类Application_Model_DbTable_Artist扩展了Zend_Db_Table_Abstract {

protected $_name = 'artist';

protected $_dependentTables = 'Model_DbTable_Painting';

}

类Application_Model_DbTable_PaintingCategory扩展了Zend_Db_Table_Abstract {

protected $_name = 'painting_category';

protected $_dependentTables = 'Model_DbTable_Painting';

}

我应该在模型中添加什么样的函数以及我应该在 Controller 和 View 脚本中编写什么才能获得像我上面编写的 SQL 查询那样的结果?告诉我我是否犯了错误。

如果您能给我一些与我的问题相关的例子,我将非常感激。谢谢

最佳答案

这是一个类似的问题,可能会对您有所帮助:

Zend Framework join

除此之外您还可以write and execute SQL直接在 Zend Framework 中声明。

关于mysql - 从 Zend Framework 中的 2 个或更多相关表中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7213897/

相关文章:

python - 如何从 Python 循环中的 mysql 中插入值

带有限制的php mysql select语句

mysql - 这两个 SQL 查询之间的区别

mysql - fetchRow() Zend Framework 中的简单 SQL 语法错误

mysql - SQL 结果包含多行

zend-framework - Zend 表单验证器 : Element A or Element B

php - Zend_Form : how to check 2 fields are identical

linux - Rust:如何生成在父级收到SIGINT/SIGTERM之后仍继续存在的子进程

mysql - 如何查询 MySql 表以显示根及其子项。

c - 向 C 中的 const 数组添加新元素