View Single Post
  #9  
Old 01-28-2005, 02:45 AM
TECK's Avatar
TECK TECK is offline
 
Join Date: Nov 2001
Location: Canada
Posts: 4,182
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi zurih,

Please note that operators like "||" and "&" are grandpa segments of code... toss them really fast and replace them with the regular used ones.
About the time cut, this is really easy.

All you have to do in your query is set a timecut, in this way you don't do a full table scan... for example:
Code:
$threadbits = '';

$threadmaxtime = 2 // <-- no. of days here
$threadcut = time() - (86400 * $threadmaxtime);

if ($activethread) // <-- condition here
{
	// twisted condition to show the max number of threads, after the tables were partially scanned
	// just in case you have to many results...
	$threadmaxnumber = iif ($threadmax != 0 , 'LIMIT ' . $threadmax , '');

	// notice the partial table scan based on "lastpost" time limit,
	// that will ease the server quite a lot...
	$threads = $DB_site->query("
		SELECT threadid, forumid, title, replycount, postusername, postuserid, lastpost, views
		FROM thread
		WHERE $iforumperms AND lastpost >= $threadcut	AND visible = 1 AND open <> 10
		ORDER BY lastpost DESC $threadmaxnumber
	");

	// it's time to roll out the results...
	while ($thread = $DB_site->fetch_array($threads))
	{
		$thread['title'] = unhtmlspecialchars($thread['title']);
		$thread['title'] = xhtml_clean($thread['title']);
		if ($threadmaxchars != 0 and strlen( $thread['title']) > $threadmaxchars)
		{
			$thread['title'] = substr($thread['title'] , 0 , $threadmaxchars - 2) . '...';
		}
		$thread['time'] = vbdate($timeformat , $thread['lastpost']);
		$thread['date'] = vbdate($dateformat , $thread['lastpost']);

		eval('$threadbits .= "' . gettemplate('home_threadbit') . '";');
	}
	$DB_site->free_result($threads);
	unset($thread);
}
This was simply a basic example, just to make you understand the coding process for a partial table scan.
With my example, it should take you only few minutes to adapt it to the VB3 code, as Stefan used to say in the good old days.

Cheers.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03443 seconds
  • Memory Usage 1,768KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete