View Single Post
  #7  
Old 02-12-2009, 11:24 AM
Gandalf-LoJ Gandalf-LoJ is offline
 
Join Date: Feb 2005
Location: Sussex, UK
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Marco van Herwaarden View Post
$aw2gr = $grouparr[$awardval];

What data are you trying to lookup in the $grouparr array? I have the feeling that you don't need that array at all as it seems you are trying to use the same value that is already available as $key.
The data that I'm checking for is the vb usergroup ID

the $grouparr is set with the key being the relevant award ID and the value is the vb usergroup ID that needs to be assigned to the user in question.

I see what you're saying though. With that in mind I now have;
PHP Code:
$arr = array (
                
=> 50,
                
=> 38,
                
=> 50,
                
=> 53,
                
12 => 23,
                
13 => 43,
                
14 => 43,
                
17 => 51,
                
18 => 37,
                
20 => 53,
                
21 => 53,
                
24 => 53,
                
25 => 53,
                
29 => 48,
                
31 => 40,
                
32 => 39,
                
38 => 46,
                
39 => 52
            
);

// ########################################################################
// ######################### USERGROUP UPDATES ############################
// #########################    GIVE ACCESS    ############################
// ########################################################################

foreach ($arr as $key => $val)
{
    echo 
"<br><br>Award=".$key.", Group=".$val;
    
// check for award and update secondary usergroup if required
    
$giveawards $vbulletin->db->query_read("
        SELECT award_id, userid 
        FROM " 
TABLE_PREFIX "award_user
        WHERE award_id = 
$key
    "
);
    
    if (
$vbulletin->db->num_rows($giveawards) > 0)
    {
        while (
$giveawardsrow $vbulletin->db->fetch_array($giveawards))
        { 
// for each award, check to see if they are a member of the relevant group and update accordingly
            
$userdm =& datamanager_init('User'$vbulletinERRTYPE_ARRAY); 
            
$userinfo fetch_userinfo($giveawardsrow['userid']);
            
$userdm->set_existing($userinfo); 
            
$membergroupids $userdm->fetch_field('membergroupids');
            echo 
"<br>Existing Groups=".$membergroupids." | ";
            if (
$membergroupids != "")
            {
                
$withcomma "," $val;
                
$trailingcomma $val ",";
                
$membergroupids str_replace("$withcomma"""$membergroupids);
                
$membergroupids str_replace("$trailingcomma"""$membergroupids);
                
$membergroupids str_replace("$val"""$membergroupids);
                if (
$membergroupids != "")
                {
                    
$membergroupids $membergroupids $withcomma;
                }
                else
                {
                    
$membergroupids $val;
                }
            }
            else
            {
                
$membergroupids $val;
            }
            echo 
"UserID=".$giveawardsrow['userid']." Membergroups=".$membergroupids;
            
$userdm->set('membergroupids'$membergroupids);
            
$userdm->pre_save();
            if (
count($userdm->errors))
            {
                for (
$i 0$i count($userdm->errors); $i++)
                {
                    echo 
"ERROR{$i}:{$userdm->errors[$i]}\n";
                }
            }
            else
            {
                
// If everything is OK
                
$userdm->save();
                echo 
" | Account updated!";
                
$userdm->set_existing($userinfo);
                
$membergroupids $userdm->fetch_field('membergroupids');
                echo 
" | UserID=".$giveawardsrow['userid']." Membergroups=".$membergroupids;
            }
        }
        
$vbulletin->db->free_result($giveawardsrow);
    }

It runs, and everything echos out perfectly to the screen. They're just not being updated! The only difference between this code and the copy, paste however many times and hardcode values, is the array.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01117 seconds
  • Memory Usage 1,837KB
  • 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_php
  • (1)bbcode_quote
  • (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