AlexanderT
09-30-2003, 08:34 AM
I used the code from external.php (vB3 beta) to figure out how to extract forum thread titles from a non-vb page. But I also like to extract the content of these threads, so I went ahead and did the following:
I replaced
// query last 15 threads from visible / chosen forums
$threads = $DB_site->query("
SELECT threadid, thread.title, thread.lastposter, thread.lastpost, thread.postusername, thread.dateline, forum.forumid, forum.title AS forumtitle
FROM " . TABLE_PREFIX . "thread AS thread
INNER JOIN " . TABLE_PREFIX . "forum AS forum ON(forum.forumid = thread.forumid)
LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog ON (deletionlog.primaryid = thread.threadid AND deletionlog.type = 'thread')
WHERE thread.forumid IN(" . implode(',', $forumids) . ") $forumchoice
AND thread.visible = 1
AND deletionlog.primaryid IS NULL
ORDER BY thread.dateline DESC
LIMIT 15
");
with
$previewfield = "post.pagetext AS preview,";
$previewjoin = "LEFT JOIN " . TABLE_PREFIX . "post AS post ON(post.postid = thread.firstpostid)";
// query last 15 threads from visible / chosen forums
$threads = $DB_site->query("
SELECT $previewfield
threadid, thread.title, thread.lastposter, thread.lastpost, thread.postusername, thread.dateline, forum.forumid, forum.title AS forumtitle
FROM " . TABLE_PREFIX . "thread AS thread
$previewjoin
INNER JOIN " . TABLE_PREFIX . "forum AS forum ON(forum.forumid = thread.forumid)
LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog ON (deletionlog.primaryid = thread.threadid AND deletionlog.type = 'thread')
WHERE thread.forumid IN(" . implode(',', $forumids) . ") $forumchoice
AND thread.visible = 1
AND deletionlog.primaryid IS NULL
ORDER BY thread.dateline DESC
LIMIT 15
");
Unfortunately, this code causes the following error:
Database error in vBulletin 3.0.0 Beta 6:
Invalid SQL:
SELECT post.pagetext AS preview,
threadid, thread.title, thread.lastposter, thread.lastpost, thread.postusername, thread.dateline, forum.forumid, forum.title AS forumtitle
FROM thread AS thread
LEFT JOIN post AS post ON(post.postid = thread.firstpostid)
INNER JOIN forum AS forum ON(forum.forumid = thread.forumid)
LEFT JOIN deletionlog AS deletionlog ON (deletionlog.primaryid = thread.threadid AND deletionlog.type = 'thread')
WHERE thread.forumid IN(12,14,13,8,29,15,3,28,4,5,7,6,23,26,25,24,27,10 ,11,20,22,21,18,17,30,31,32,33,34,35,36,37,38,39) AND thread.forumid IN(14)
AND thread.visible = 1
AND deletionlog.primaryid IS NULL
ORDER BY thread.dateline DESC
LIMIT 15
mysql error: Column: 'threadid' in field list is ambiguous
Does any VB- or MySQL-guru know what I did wrong here? I would like to extract thread.title AND pagetext in a single query. :confused:
I replaced
// query last 15 threads from visible / chosen forums
$threads = $DB_site->query("
SELECT threadid, thread.title, thread.lastposter, thread.lastpost, thread.postusername, thread.dateline, forum.forumid, forum.title AS forumtitle
FROM " . TABLE_PREFIX . "thread AS thread
INNER JOIN " . TABLE_PREFIX . "forum AS forum ON(forum.forumid = thread.forumid)
LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog ON (deletionlog.primaryid = thread.threadid AND deletionlog.type = 'thread')
WHERE thread.forumid IN(" . implode(',', $forumids) . ") $forumchoice
AND thread.visible = 1
AND deletionlog.primaryid IS NULL
ORDER BY thread.dateline DESC
LIMIT 15
");
with
$previewfield = "post.pagetext AS preview,";
$previewjoin = "LEFT JOIN " . TABLE_PREFIX . "post AS post ON(post.postid = thread.firstpostid)";
// query last 15 threads from visible / chosen forums
$threads = $DB_site->query("
SELECT $previewfield
threadid, thread.title, thread.lastposter, thread.lastpost, thread.postusername, thread.dateline, forum.forumid, forum.title AS forumtitle
FROM " . TABLE_PREFIX . "thread AS thread
$previewjoin
INNER JOIN " . TABLE_PREFIX . "forum AS forum ON(forum.forumid = thread.forumid)
LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog ON (deletionlog.primaryid = thread.threadid AND deletionlog.type = 'thread')
WHERE thread.forumid IN(" . implode(',', $forumids) . ") $forumchoice
AND thread.visible = 1
AND deletionlog.primaryid IS NULL
ORDER BY thread.dateline DESC
LIMIT 15
");
Unfortunately, this code causes the following error:
Database error in vBulletin 3.0.0 Beta 6:
Invalid SQL:
SELECT post.pagetext AS preview,
threadid, thread.title, thread.lastposter, thread.lastpost, thread.postusername, thread.dateline, forum.forumid, forum.title AS forumtitle
FROM thread AS thread
LEFT JOIN post AS post ON(post.postid = thread.firstpostid)
INNER JOIN forum AS forum ON(forum.forumid = thread.forumid)
LEFT JOIN deletionlog AS deletionlog ON (deletionlog.primaryid = thread.threadid AND deletionlog.type = 'thread')
WHERE thread.forumid IN(12,14,13,8,29,15,3,28,4,5,7,6,23,26,25,24,27,10 ,11,20,22,21,18,17,30,31,32,33,34,35,36,37,38,39) AND thread.forumid IN(14)
AND thread.visible = 1
AND deletionlog.primaryid IS NULL
ORDER BY thread.dateline DESC
LIMIT 15
mysql error: Column: 'threadid' in field list is ambiguous
Does any VB- or MySQL-guru know what I did wrong here? I would like to extract thread.title AND pagetext in a single query. :confused: