php - Zend Framework 1. 获取评论

标签 php mysql select zend-framework fetch

我无法创建一个适当的查询来选择与一张特定图像相关的所有评论并获取这些评论的作者。 我想创建一个类似的查询:

select a comment where comment_id == image_id && user_id(table comments) == user_id(table users)

这是 MySQL 部分:

Table 'comments'
id | comment | user_id | image_id |
1  | test 1  |    1    |     1    |
2  | test 2  |    1    |     2    |
3  | test 3  |    2    |     1    |


Table 'users'
id |  name  |
1  |  test1 |
2  |  test2 |


Table 'images'
id |    img     |
1  |  test.jpg  |
2  |  test.jpg  |
3  |  test.jpg  |
4  |  test.jpg  |

Controller 部分:

$imageId = $filter->filter ($request->getParam('id'));
$this->view->imageId = $filter->filter ($request->getParam('id'));
$this->view->imageChosen = $images->fetchRow($images->select()->where('id = ?', $imageId));

$users = new Users();
$userChosen = new Users();
$comments = new Comments();
$this->view->comments = $comments->fetchAll();

$this->view->userChosen = $users->fetchRow($users->select()->where('id = ?', $this->view->imageChosen->author_id));
$this->view->commentsChosen = $comments->fetchAll($comments->select()->where('id = ?', $imageId));

查看部分:

for ($i=0; $i < count($this->commentsChosen); $i++) {
    echo $this->commentChosen[$i]->comment;
}

现在我只收到第一条评论。 我的意思是我需要属于每张图片的所有评论以及作者信息。 感谢您的帮助!

最佳答案

正如您所说,您可以通过查询获取图像信息,我将扩展它以便也获取用户信息:

$select = $comments->select()->setIntegrityCheck(false)
                   ->from('comments')
                   ->joinInner('users', 'users.id = comments.user_id')
                   ->where('comments.image_id = ?', $this->view->imageChosen->id);

$this->view->commentsChosen = $comments->fetchAll($select);

生成的查询将是:

SELECT comments.* users.* FROM comments
INNER JOIN users ON users.id = comments.user_id
WHERE comments.image_id = [Your_id_here]

希望这会有所帮助!

关于php - Zend Framework 1. 获取评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32233706/

相关文章:

php - 依赖下拉列表获取 id 而不是名称

php - Ubuntu sed 创建重复的行而不是只返回一个替换的行

dataframe - julia DataFrame 选择属于一组的一列的基于行的值

php - TIMEDIFF 函数不起作用

php - 图像 DIV 覆盖子 DIV

php - Mysql SET 和用 PHP 查询子集

python - 使用 StringEncryptedType、SQLAlchemy 时出现 VARCHAR 长度错误

MySQL 插入查询中提到的 Java 数组元素未插入表中。而是抛出错误

mysql - GROUP BY 也选择非常量列

Jquery从td中选择产品