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 12-04-2007, 04:46 PM
Big9erFan Big9erFan is offline
 
Join Date: Apr 2004
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Code works, but move it to a class and it stops

Ok, I've been tearing my hair out over this trying to figure out what is going on. I'm at a loss, and probably just missing something REALLY simple, but I'm at a total loss.

I'm writing a little custom vba module for my guild.

I have 3 templates that I pull in

So I do something like this

PHP Code:
global $vbulletin;
eval(
'$home[$mods[\'modid\']][\'content\'] = "' fetch_template('adv_progression_header') . '";');
$instances $vbulletin->db->query_read"SQL STUFF HERE" );
while (
$instance $vbulletin->db->fetch_array($instances))
{
    
$img_name $instance['image'];
    
$name $instance['name'];
    eval(
'$home[$mods[\'modid\']][\'content\'] .= "' fetch_template('adv_progression_data') . '";');

That works fine.

Now, trying to put it into a class

PHP Code:
class cls_progression
{
    var 
$theDB;
    function 
cls_progression$DB )
    {
        
$this->theDB $DB;
    }
    
    function 
LoadInstances()
    {
        
$instances $this->theDB->db->fetch_array$this->theDB->db->query_read("SQL STUFF HERE" ) );
        
$iCount $this->theDB->db->num_rows($instances);
        echo 
"iCount = $iCount";
        while (
$instance $this->theDB->db->fetch_array($instances))
        {
            
$img_name $instance['image'];
            
$name $instance['name'];
            eval(
'$home[$mods[\'modid\']][\'content\'] .= "' fetch_template('adv_progression_data') . '";');
        }
    }

//call the class:
$progress = new cls_progression$vbulletin );

$progress->LoadInstances(); 
the class doesn't work at all. I know it is called, but the echo returns just
"iCount = "

I'm horribly confused
Reply With Quote
  #2  
Old 12-04-2007, 05:44 PM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Code:
$instances = $this->theDB->db->fetch_array( $this->theDB->db->query_read("SQL STUFF HERE" ) );
Reply With Quote
  #3  
Old 12-04-2007, 09:05 PM
Big9erFan Big9erFan is offline
 
Join Date: Apr 2004
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Perhaps I'm just very dense today, but I don't see the difference or the problem >.<
Reply With Quote
  #4  
Old 12-04-2007, 09:18 PM
Guest190829
Guest
 
Posts: n/a
Default

it should be like this:

PHP Code:
class example
{
   function 
exampe(&$registry$otherags )
   {
          
$this->registry =& $registry;
   }

   function 
fetch_example($id)
  {
         
$this->registry->db->query_read("... some mysql ...");
        
/*
                more code....
        */
  
}
}

$example1 = new example($vbulletin);
$example1->fetch_example(2); 

Things to notice are the &'s and the naming convention of registry to hold the vBulletin object (not required, but conforms to vB's approach)
Reply With Quote
  #5  
Old 12-04-2007, 09:45 PM
Big9erFan Big9erFan is offline
 
Join Date: Apr 2004
Posts: 6
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ah!

Thank you very much. Still kind of new to php programming, but been writing in C++ for years.

Thanks again
Reply With Quote
  #6  
Old 12-04-2007, 10:07 PM
Guest190829
Guest
 
Posts: n/a
Default

Yeah, the ampersand is a little annoyance with PHP 4, but it becomes habit to add it eventually.
Reply With Quote
  #7  
Old 12-05-2007, 10:41 AM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Big9erFan View Post
Perhaps I'm just very dense today, but I don't see the difference or the problem >.<
You fetch the array and assigned it to a variable and then you tried to count the rows of that variable...you should be using the query handle to do it. i.e. remove the bit in red...

(Look at your code, you've used fetch_array() twice. )
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 01:12 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03918 seconds
  • Memory Usage 2,233KB
  • 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
  • (1)bbcode_code
  • (3)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (7)post_thanks_box
  • (7)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (7)post_thanks_postbit_info
  • (7)postbit
  • (5)postbit_onlinestatus
  • (7)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