我正在尝试创建一个包含多个论坛类别的在线论坛。我与所有的类一个概述,每个类别的名下,我要链接到最新帖子中提到的类别,这样的事情:如何在包含的SQL查询中使用Twig循环值
我的论坛
酷类
最新留言:测试线程通过李四类有趣
最新留言:另一个测试线由李四滑稽的类别
最新留言:笑话线程通过李四
所以,我做了一个SQL查询来获取所有论坛类别:
$forumCategories = DB::run('SELECT * FROM forumCategories ORDER BY id ASC')->fetchAll();
并把它变成一个全局变量:
$twig->addGlobal('forumCategories', $forumCategories);
并取得for循环列出所有类别:
{% for category in forumCategories %}
<h3>{{category.title}}</h3>
{% endfor %}
到目前为止,一切都很好。
但现在,我想显示每个类别中的最新帖子。我想运行一个SQL查询并从表forumPosts中获取最新的帖子,为每个论坛类别,并在循环内显示它。我需要显示来自forumPosts的一行,其中类别与循环中的category.id相同。我该怎么做呢?
数据库的结构和内容:
CREATE TABLE `forumCategories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`urlTitle` varchar(255) NOT NULL,
`description` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `forumCategories` (`id`, `title`, `urlTitle`, `description`)
VALUES
(1,'Hovedrommet','hovedrommet','Dette er hovedrommet på Nye Dofo.'),
(2,'Forumleker','forumleker','Her kan man leke ulike forumleker.');
CREATE TABLE `forumPosts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`urlTitle` varchar(255) NOT NULL,
`category` int(11) NOT NULL,
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `forumPosts` (`id`, `title`, `urlTitle`, `category`, `content`)
VALUES
(1,'Test','test',1,'Dette er test1.'),
(2,'Test2','test2',1,'Dette er test2.'),
(3,'Test3','test3',2,'Dette er test3.'),
(4,'Test4','test4',2,'Dette er test4.');
我想输出是所有类别的“称号”,以及最新帖子(具有最高的ID)的“称号”的循环每个类别。我设法得到类别名称,但不是最新的帖子。
我想下面的输出:
Hovedrommet
最新留言:Test2的
Forumleker
最新留言:TEST4
这将有助于看到表结构,一些样本数据,以及您所期望的输出。 –
@TimBiegeleisen我已经更新了原来的问题 – Galaniitoluodda
哪一列可以用来找到最新的帖子? –