Problemer med inner Joins og Limit
Jeg har ved hjælp af en tidligere tråd fundet frem til dette:$result = dbquery("
SELECT tt.thread_id, tt.thread_subject, tp.post_message, tp.post_datestamp FROM (
".DB_POSTS." tp INNER JOIN ".DB_FORUMS." tf ON tp.forum_id=tf.forum_id )
INNER JOIN ".DB_THREADS." tt ON tf.forum_id=tt.forum_id
WHERE tp.forum_id='4' ORDER BY post_datestamp DESC LIMIT 0,5");
if (dbrows($result)) {
while($data = dbarray($result)) {
$itemsubject = trimlink($data['thread_subject'], 30);
$itemmessage = trimlink($data['post_message'], 250);
echo THEME_BULLET." <a href='".FORUM."viewthread.php?thread_id=".$data['thread_id']."' title='".$data['thread_subject']."' class='side'><span style='color:#990000'>$itemsubject</span><br />$itemmessage <em>Læs mere</em>...</a><hr />\n";
}
} else {
echo "<div style='text-align:center'>".$locale['global_023']."</div>\n";}
Den viser som den skal, 5 poster hvor thread_subject er overskriften og post_message er selve artiklen.
Problem 1:
Der er oprettet 4 artikler som vises med den ældste først. MEN den vil have der skal være 5 alligevel, og viser derfor nr. 1 igen.
Problem 2:
Jeg vil gerne have den til at vise den nyeste artikkel først, og ændrede derfor til ASC Limit, her viser den korrekt post_message med nyeste først (ASC), MEN overskrifterne forbliver vist som ældste (DESC) først. Derved passer overskrift og artikkel ikke sammen.
Er der en venlig sjæl, der kan hjælpe mig med at se hvad jeg har gjort forkert??
For en ordens skyld, kan jeg fortælle at mine tabeller ser sådan ud:
Mine tabeller:
posts
- forum_id
- thread_id
- post_id
- post_message
- post_datestamp
forums
- forum_id
- forum_cat
- forum_access
- forum_post
- forum_lastpost
threads
- thread_id
- forum_id
- thread_subject
- thread_lastpostid
- thread_lastpost