Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 09-21-2008, 03:53 PM
DionDev DionDev is offline
 
Join Date: Mar 2008
Posts: 105
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Help with news page hack I made

I am looking for some help with this. Now it works, but it doesn't seem to be as efficient as I would like it to be. I mean sometimes it takes a couple of seconds to display the page. The execution time is what I am worried about.

Could any PHP gurus give some input as to how I could improve this news page script I wrote? (it grabs news from a specified forum and spits it out onto a php page)

PHP Code:
<?php

chdir
('./forums');
require_once(
'./global.php');
require_once(
'./includes/class_bbcode.php'); 

$parser =& new vB_BbCodeParser($vbulletinfetch_tag_list());

$dbhost 'localhost';
$dbname '*****';
$dbuser '*****';
$dbpass '*****';

mysql_connect($dbhost$dbuser$dbpass);
mysql_select_db($dbname);
        
$sql 'SELECT post.pagetext, thread.*
        FROM post AS post, thread AS thread
        LEFT JOIN forum AS forum ON (forum.forumid = thread.forumid)
        WHERE FIND_IN_SET(4, forum.parentlist) AND post.postid = thread.firstpostid
        ORDER BY thread.dateline DESC
        LIMIT 5'
;

$sqlresult mysql_query($sql) or die(mysql_error());
$count mysql_num_rows($sqlresult);

while (
$row mysql_fetch_array($sqlresult))
{
  
$subject $row['title'];
  
$poster $row['postusername'];
  
$posterid $row['postuserid'];
  
$time date("D, M j, Y"$row['dateline']);
  
$replies $row['replycount'];
  
$id $row['threadid'];
  
$text $parser->do_parse($row['pagetext'], truetruetruetruetruefalse);
  
  if (
$replies == 1)
    
$replytext 'reply';
  else
    
$replytext 'replies';
  
  echo 
"<b>$subject</b>";
  
  echo 
'<br>';
  
  echo 
'<font style="font-size: 8pt;">';
  echo 
"Posted by <a href=\"forums/member.php?u=$posterid\">$poster</a> on $time (<a href=\"forums/showthread.php?t=$id\">$replies $replytext</a>)";
  echo 
'</font>';
  
  echo 
'<br><br>';
  
  echo 
$text;
}

echo 
'<br><br><div style="float: right;"><a href="forums/forumdisplay.php?f=4">News Archive Forum</a></div>';

?>
Reply With Quote
  #2  
Old 09-23-2008, 02:38 AM
MoT3rror MoT3rror is offline
 
Join Date: Mar 2007
Posts: 423
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

One it is best to use vBulletin db functions so you only use one database connection.
https://vborg.vbsupport.ru/showthrea...database+class

But if you want to stay with the mysql default functions, it would probably be best to change your code to this.

PHP Code:
chdir('./forums');
require_once(
'./global.php');
require_once(
'./includes/class_bbcode.php'); 

$parser =& new vB_BbCodeParser($vbulletinfetch_tag_list());

$dbhost 'localhost';
$dbname '*****';
$dbuser '*****';
$dbpass '*****';

$dbconnection mysql_connect($dbhost$dbuser$dbpass);
mysql_select_db($dbname$dbconnection);
        
$sql 'SELECT post.pagetext, thread.*
        FROM post AS post, thread AS thread
        LEFT JOIN forum AS forum ON (forum.forumid = thread.forumid)
        WHERE FIND_IN_SET(4, forum.parentlist) AND post.postid = thread.firstpostid
        ORDER BY thread.dateline DESC
        LIMIT 5'
;

$sqlresult mysql_query($sql$dbconnection) or die(mysql_error());
$count mysql_num_rows($sqlresult);

while (
$row mysql_fetch_array($sqlresult))
{
  
$subject $row['title'];
  
$poster $row['postusername'];
  
$posterid $row['postuserid'];
  
$time date("D, M j, Y"$row['dateline']);
  
$replies $row['replycount'];
  
$id $row['threadid'];
  
$text $parser->do_parse($row['pagetext'], truetruetruetruetruefalse);
  
  if (
$replies == 1)
    
$replytext 'reply';
  else
    
$replytext 'replies';
  
  echo 
"<b>$subject</b>";
  
  echo 
'<br>';
  
  echo 
'<font style="font-size: 8pt;">';
  echo 
"Posted by <a href=\"forums/member.php?u=$posterid\">$poster</a> on $time (<a href=\"forums/showthread.php?t=$id\">$replies $replytext</a>)";
  echo 
'</font>';
  
  echo 
'<br><br>';
  
  echo 
$text;
}

mysql_close($dbconnection);

echo 
'<br><br><div style="float: right;"><a href="forums/forumdisplay.php?f=4">News Archive Forum</a></div>'
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:24 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04014 seconds
  • Memory Usage 2,210KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete