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.
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
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.