EDIT: Såg precis att jag råkade posta detta i php forumet. Ska naturligtvis vara i sql-forumet. Sorry. Mod får flytta.
Din vilja är min lag.
Mvh
Databaser & SQLur Databashanterare & SQL
2 svar · 459 visningar · startad av geeky
Hej,
Jag har ett phpbb (2.0) forum. Jag vill göra en funktion som tar de fem senast uppdaterade forumstrådarna i en viss forumsdel och visar trådarnas rubriker (topics) på min sidas startsida.
För att kunna göra detta behöver jag joina två tabeller (tror jag). Dels tabellen phpbb_posts och dels tabellen phpbb_topics. Fälten i de två tabellerna ser (förenklat) ut så här:
Tabell: phpbb_posts:
forum_id
post_id
topic_id
post_time
Tabell: phpbb_topics
forum_id
topic_title
topic_id
Jag skrev följande query, men resultatet blir att EN topic väljs och visas fem gånger istället för att fem av senaste topic:sen visas.
Den aktuella forumsdelen har id 144.
SELECT phpbb_topics.topic_title, phpbb_topics.topic_id FROM phpbb_topics LEFT JOIN phpbb_posts ON phpbb_posts.topic_id=phpbb_topics.topic_id WHERE phpbb_topics.forum_id = 144 ORDER BY phpbb_posts.post_time LIMIT 0,5
Kan inte komma på hur queryn ska skrivas så att de fem senast uppdaterade trådarna i en viss forum del väljs ut. Nån som vet?
EDIT: Såg precis att jag råkade posta detta i php forumet. Ska naturligtvis vara i sql-forumet. Sorry. Mod får flytta.
EDIT: Såg precis att jag råkade posta detta i php forumet. Ska naturligtvis vara i sql-forumet. Sorry. Mod får flytta.
Din vilja är min lag.
Mvh
select phpbb_topics.topic_title,
phpbb_topics.topic_id,
max(phpbb_posts.post_time) lastPost
from phpbb_topics
join phpbb_posts
on phpbb_posts.topic_id = phpbb_topics.topic_id
where phpbb_topics.forum_id = 144
group by phpbb_topics.topic_id
order by lastPost desc
limit 0,5