Version: , by TECK
Developer Last Online: Nov 2023
Version: Unknown
Rating:
Released: 05-07-2002
Last Update: Never
Installs: 0
No support by the author.
i want to show the latest 10 threads, pulled from all forums in forumdisplay.php. i have this code:
Code:
// get latest threads
$forums=$DB_site->query("SELECT * FROM forum WHERE active=1");
$forumids='forumid IN (0';
while ($forum=$DB_site->fetch_array($forums)) {
$getperms=getpermissions($forum['forumid']);
if ($getperms[canview]) {
$forumids .= "," . $forum['forumid'];
}
}
$forumids.=')';
unset($forum);
$getthreads=$DB_site->query("SELECT * FROM thread WHERE $forumids AND visible=1 ORDER BY lastpost DESC LIMIT 10");
while ($lastthread=$DB_site->fetch_array($getthreads)) {
$threadid=$lastthread[threadid];
$titleextra='';
if (strlen($lastthread[title])>32) {
$titleextra="...";
}
$threadtitle=substr($lastthread[title], 0, 29);
}
eval("\$lastthreadbits .= \"".gettemplate('home_threadbits')."\";");
everything is working fine... hmm the problem is that it's making me jump from 21 to 40!!!! queries. is there a way to cache somehow those pesky queries? thanks for your help.
is the perms that add a query for each thread... you have an idea how it would be the code to pull it out of the loop?
i honestly dont know. as you know firefly, i look at the VB script code and try to make something similar. thare are certain things i do not manage yet. let me know if you could write the loop part here for me. thanks.
//perms
$fperm=$DB_site->query("SELECT canview,forumid FROM forumpermission WHERE usergroupid='$bbuserinfo[usergroupid]'");
while($fperms = $DB_site->fetch_array($fperm)) {
$perms["$fperms[forumid]"] = $fperms;
}
$DB_site->free_result($fperm);
unset($fperms);
//forums
$forum=$DB_site->query("SELECT forumid FROM forum");
while ($forums=$DB_site->fetch_array($forum)) {
if($fperms["$forums[forumid]"]["canview"] == 1) {
$forumperms[]=$forums["forumid"];
}
else {
$forumperms[]=$forums["forumid"];
}
}
$DB_site->free_result($forum);
unset($forums);
if(!empty($forumperms)) {
$forumperms='AND forumid='.implode(' OR forumid=',$forumperms);
}
$getthreads=$DB_site->query("SELECT * FROM thread WHERE open='1' AND open<>10 $forumperms ORDER BY lastpost DESC LIMIT 10");
you should add open<>10 in the query as that is moved threads which you don't want, as it will pick up the moved thread plus the redirect left in the old forum.
now, can i pm you about an issue that i develloped with a different file? i cannot post the contents of the file because it contains 60% VB script code. i already asked firefly for help. just leting you know that is nothing related to this thread here. i ask this because maybe firefly is busy and i dont want to pm every single one of you every day.
if any of you is willing to take a look at the file (firefly, ppn or zzed), please post an answer here and i will attach the file in your pm. is about a misterious query that is added every time i refresh the page. originally it starts with 21 queries on the page, when i login. as soon as i refresh, it adds a new query, for a total of 22. i cant seem to find where it must be unset the forgotten variable, in that file.
Using your code exactly except for the last query line (mine is: $threadsql = $DB_site->query("SELECT lastposter, threadid, title, replycount FROM thread WHERE open<>10 $forumperms ORDER BY lastpost DESC LIMIT 69"); ) this just didn't work. I made a thread in my admin&mods forum, but a normal member still sees the thread listed while viewing my newsportal.
Originally posted by nakkid if any of you is willing to take a look at the file (firefly, ppn or zzed), please post an answer here and i will attach the file in your pm. is about a misterious query that is added every time i refresh the page. originally it starts with 21 queries on the page, when i login. as soon as i refresh, it adds a new query, for a total of 22.