Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 08-31-2002, 03:47 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Number format

Can anyone please tell me an easier way to do this? I want to have the thread views in a number format (with an apostrophe after 1000). Here is the code I got it to work with but there must be a better and easier way to accomplish this.

PHP Code:
$dbview $DB_site->query_first("SELECT SUM(views) AS totalviews FROM thread");
$allviews $dbview[totalviews];
$countviews=$DB_site->query_first("SELECT SUM(views) AS views FROM thread WHERE postuserid='$userinfo[userid]'");
$userthreadviews=$countviews['views'];
$threadviewpercent round(($userthreadviews $allviews) * 100,2);
$userthreadviews=number_format($countviews['views']);
if (
$userthreadviews AND $threadviewpercent <> "0") {
    eval(
"\$threadviews = \"".gettemplate("getinfo_threadviews")."\";");
  } else {
        
$threadviews '';
  } 
This is the line I had to insert to get it to work right.

PHP Code:
$userthreadviews=number_format($countviews['views']); 
I tried doing the number_format in the first instance of this code, but it messed up the percentage of totalviews there.
Reply With Quote
  #2  
Old 08-31-2002, 05:39 AM
futureal futureal is offline
 
Join Date: Feb 2002
Location: Del Mar, CA, USA
Posts: 556
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The problem is that number_format(...) changes the resulting variable to a string. If you look back at that code, the variable you are converting ($userthreadviews) is used in an if(...) statement in the next line.

Try the following code:

PHP Code:
$dbview $DB_site->query_first("SELECT SUM(views) AS totalviews FROM thread");
$allviews $dbview[totalviews];
$countviews=$DB_site->query_first("SELECT SUM(views) AS views FROM thread WHERE postuserid='$userinfo[userid]'");
$userthreadviews=$countviews['views'];
$threadviewpercent round(($userthreadviews $allviews) * 100,2);
$userthreadviews=$countviews['views'];
if (
$userthreadviews AND $threadviewpercent <> "0") {
    
$userthreadviews number_format($userthreadviews);
    eval(
"\$threadviews = \"".gettemplate("getinfo_threadviews")."\";");
  } else {
        
$threadviews '';
  } 
The basic idea is, only use number_format(...) right before you display the value, to ensure that you're not screwing up any future logic (there could be more in this case, I wouldn't know without looking at the whole code...)
Reply With Quote
  #3  
Old 08-31-2002, 06:20 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for clearing that up for me. The code I had above worked, but I had to put two lines in it to make it work. I didn't realize I could move it down to just before I evaluated the template. Thanks again. This will definitely help in the future as well.
Reply With Quote
Reply

Thread Tools
Display Modes

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 07:47 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.03535 seconds
  • Memory Usage 2,187KB
  • 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
  • (3)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)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