Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 02-24-2006, 08:32 PM
Nullifi3d Nullifi3d is offline
 
Join Date: Apr 2004
Location: FL, USA
Posts: 215
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Strange php function problem

Not exactly sure why this code isn't working:
PHP Code:
function construct_items() {
    global 
$db$vbulletin;
    
$armors $db->query_read("SELECT * FROM " TABLE_PREFIX "armyarmors");
    while (
$armor $db->fetch_array($armors)) {
        
$armor['price'] = vb_number_format($armor['price']);
        
$armor['strength'] = vb_number_format($armor['strength']);
        eval(
'$arsenalarmorbit .= "' fetch_template('army_arsenalarmorbit') . '";');
    }
    
$weapons $db->query_read("SELECT * FROM " TABLE_PREFIX "armyweapons");
    while (
$weapon $db->fetch_array($weapons)) {
        
$weapon['price'] = vb_number_format($weapon['price']);
        
$weapon['strength'] = vb_number_format($weapon['strength']);
        eval(
'$arsenalweaponbit .= "' fetch_template('army_arsenalweaponbit') . '";');
    }
    
$defensive $db->query_read("SELECT * FROM " TABLE_PREFIX "armyarmors");
    while (
$defense $db->fetch_array($defensive)) {
        
$item $db->query_first("SELECT a" $defense['id'] . " FROM " TABLE_PREFIX "armysys WHERE userid = " $vbulletin->userinfo['userid']);
        
$item['name'] = $defense['name'];
        
$item['id'] = "a" $offense['id'];
        
$item['quantity'] = vb_number_format($item[$defense['id']]);
        
$item['strength'] = vb_number_format($defense['strength']);
        
$item['cstrength'] = vb_number_format($item['cstrength']);
        
$item['sellprice'] = vb_number_format( ($defense['price']) * ('.' $vbulletin->options['armysys_sellback_percent']) );
        
$item['repairprice'] =  vb_number_format( ($defense['strength'] * '.' $vbulletin->options['armysys_repair_percent']) * ( ($defense['strength'] - $defense['cstrength']) * ($item[$defense['id']]) ) );
        if (
$item[$defense['id']] > 0) eval('$arsenalarmorsbit .= "' fetch_template('army_arsenalarmorsbit') . '";');
    }
    
$offensive $db->query_read("SELECT * FROM " TABLE_PREFIX "armyweapons");
    while (
$offense $db->fetch_array($offensive)) {
        
$item $db->query_first("SELECT w" $offense['id'] . " FROM " TABLE_PREFIX "armysys WHERE userid = " $vbulletin->userinfo['userid']);
        
$item['name'] = $offense['name'];
        
$item['id'] = "w" $offense['id'];
        
$item['quantity'] = vb_number_format($item[$offense['id']]);
        
$item['strength'] = vb_number_format($offense['strength']);
        
$item['cstrength'] = vb_number_format($item['cstrength']);
        
$item['sellprice'] = vb_number_format( ($offense['price']) * ('.' $vbulletin->options['armysys_sellback_percent']) );
        
$item['repairprice'] = vb_number_format( ($offense['strength'] * '.' $vbulletin->options['armysys_repair_percent']) * ( ($offense['strength'] - $offense['cstrength']) * ($item[$offense['id']]) ) );
        if (
$item[$offense['id']] > 0) eval('$arsenalweaponsbit .= "' fetch_template('army_arsenalweaponsbit') . '";');
    }

In the same page I am calling the function with:
PHP Code:
construct_items(); 
If I don't use the code in a function it correctly evals the code, but if I try a function it does not do anything.
Reply With Quote
  #2  
Old 02-25-2006, 09:22 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Are you using this inside a Scheduled Task?

If yes, try passing $vbulletin as a parameter, instead of relying on global.
Reply With Quote
  #3  
Old 02-25-2006, 10:13 AM
Nullifi3d Nullifi3d is offline
 
Join Date: Apr 2004
Location: FL, USA
Posts: 215
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

No, it's in a regular vbulletin page (well my custom page). It seems the only things not functioning are the eval lines.
Reply With Quote
  #4  
Old 02-25-2006, 10:30 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If that is your problem, then do a global of those fields you are evalling into. Otherwise they will not be available outside the function.
Reply With Quote
  #5  
Old 02-25-2006, 10:37 AM
Nullifi3d Nullifi3d is offline
 
Join Date: Apr 2004
Location: FL, USA
Posts: 215
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you. That worked.
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 03:58 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.04384 seconds
  • Memory Usage 2,229KB
  • Queries Executed 11 (?)
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
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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_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