Ich versuche, ein Online-Forum mit mehreren Forum-Kategorien zu erstellen. Ich habe eine Übersicht mit allen Kategorien gemacht und unter dem Namen jeder Kategorie, ich will auf den neuesten Eintrag in der genannten Kategorie verknüpfen, etwa so:Wie Verwenden von Twig-Schleife Wert in einer SQL-Abfrage
MY FORUM
coole Kategorie
Letzter Beitrag: Test-Thread von John DoeInteressante Kategorie
Letzter Eintrag: Ein weiterer Test Thread von Jane DoeLustige Kategorie
Letzter Eintrag: Witze Thread von John Doe
Also, ich habe eine SQL-Abfrage gemacht, alle Forum Kategorien zu holen:
$forumCategories = DB::run('SELECT * FROM forumCategories ORDER BY id ASC')->fetchAll();
und verwandelte sie in eine globale Variable:
$twig->addGlobal('forumCategories', $forumCategories);
012 Undmachte eine for-Schleife alle Kategorien zur Liste:
{% for category in forumCategories %}
<h3>{{category.title}}</h3>
{% endfor %}
So weit, so gut.
Aber jetzt möchte ich die neuesten Beiträge in jeder Kategorie anzeigen. Ich möchte eine SQL-Abfrage ausführen und den neuesten Beitrag aus der Tabelle forumPosts für jede Forumkategorie abrufen und in der Schleife anzeigen. Ich muss eine Zeile aus forumPosts anzeigen, in der category der Kategorie category.id in der Schleife entspricht. Wie mache ich das?
Datenbank-Struktur und Inhalt:
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.');
Der Ausgang ich will, ist eine Schleife mit „Titeln“ alle Kategorien, und „Titel“ des Letzten Beitrags (der mit höchster ID) in jede Kategorie. Ich bekomme den Namen der Kategorie, aber nicht den neuesten Beitrag.
Ich möchte die folgende Ausgabe:
Hovedrommet
Letzter Eintrag: Test2
Forumleker
Letzter Eintrag: Test4
Es würde helfen Tabellenstruktur, einige Beispieldaten und die Ausgabe, die Sie erwarten zu sehen. –
@TimBiegeleisen Ich habe jetzt die ursprüngliche Frage aktualisiert – Galaniitoluodda
Welche Spalte kann verwendet werden, um den neuesten Beitrag zu finden? –