MyBB Community Forums

Full Version: Auto Upgrade Mistake
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Not very good with coding, but I found the auto usergroup upgrade code. I tried to use it, but I have multiple groups that I want to be upgraded. I used the following, but obviously it's wrong because it just upgraded everyone to 10 posts to the 100 post usergroup. Any help would be grately appreciated as I have no idea what I am doing.

I tried to following the instructions in the thread I found, but obviously I failed.

## Update Usergroup ##
// Usergroup-ID Group 1 (old group)
$gid1 = "2";
$gid1a = "9";
$gid1b = "10";
$gid1c = "12";

// Usergroup-ID Group 2 (new group)
$gid2 = "9";
$gid2a = "10";
$gid2b = "12";
$gid2c = "13";

// Minimal number of posts
$minposts = "10";
$minpostsa = "30";
$minpostsb = "50";
$minpostsc = "100";

// Find users
$find_users = $db->query("SELECT uid FROM ".TABLE_PREFIX."users WHERE usergroup = '".$gid1."' AND postnum >= '".$minposts."'");
while ($users = $db->fetch_array($find_users))
{
// Update usergroup
$update_group = $db->query("UPDATE ".TABLE_PREFIX."users SET usergroup = '".$gid2."', displaygroup = '".$gid2."' WHERE uid = '".$users['uid']."'");
}
$find_users = $db->query("SELECT uid FROM ".TABLE_PREFIX."users WHERE usergroup = '".$gid1a."' AND postnum >= '".$minposts."'");
while ($users = $db->fetch_array($find_users))
{
// Update usergroup
$update_group = $db->query("UPDATE ".TABLE_PREFIX."users SET usergroup = '".$gid2a."', displaygroup = '".$gid2a."' WHERE uid = '".$users['uid']."'");
}
$find_users = $db->query("SELECT uid FROM ".TABLE_PREFIX."users WHERE usergroup = '".$gid1b."' AND postnum >= '".$minposts."'");
while ($users = $db->fetch_array($find_users))
{
// Update usergroup
$update_group = $db->query("UPDATE ".TABLE_PREFIX."users SET usergroup = '".$gid2b."', displaygroup = '".$gid2b."' WHERE uid = '".$users['uid']."'");
}
$find_users = $db->query("SELECT uid FROM ".TABLE_PREFIX."users WHERE usergroup = '".$gid1c."' AND postnum >= '".$minposts."'");
while ($users = $db->fetch_array($find_users))
{
// Update usergroup
$update_group = $db->query("UPDATE ".TABLE_PREFIX."users SET usergroup = '".$gid2c."', displaygroup = '".$gid2c."' WHERE uid = '".$users['uid']."'");
}
## Update Usergroup ##
All your $minposts are the same. You forgot to add the a, b, c to them.
Ah, thanks alot. Sorry about posting in the wrong forum.

So this would be right:

// Find users
$find_users = $db->query("SELECT uid FROM ".TABLE_PREFIX."users WHERE usergroup = '".$gid1."' AND postnum >= '".$minposts."'");
while ($users = $db->fetch_array($find_users))
{
// Update usergroup
$update_group = $db->query("UPDATE ".TABLE_PREFIX."users SET usergroup = '".$gid2."', displaygroup = '".$gid2."' WHERE uid = '".$users['uid']."'");
}
$find_users = $db->query("SELECT uid FROM ".TABLE_PREFIX."users WHERE usergroup = '".$gid1a."' AND postnum >= '".$minpostsa."'");
while ($users = $db->fetch_array($find_users))
{
// Update usergroup
$update_group = $db->query("UPDATE ".TABLE_PREFIX."users SET usergroup = '".$gid2a."', displaygroup = '".$gid2a."' WHERE uid = '".$users['uid']."'");
}
$find_users = $db->query("SELECT uid FROM ".TABLE_PREFIX."users WHERE usergroup = '".$gid1b."' AND postnum >= '".$minpostsb."'");
while ($users = $db->fetch_array($find_users))
{
// Update usergroup
$update_group = $db->query("UPDATE ".TABLE_PREFIX."users SET usergroup = '".$gid2b."', displaygroup = '".$gid2b."' WHERE uid = '".$users['uid']."'");
}
$find_users = $db->query("SELECT uid FROM ".TABLE_PREFIX."users WHERE usergroup = '".$gid1c."' AND postnum >= '".$minpostsc."'");
while ($users = $db->fetch_array($find_users))
{
// Update usergroup
$update_group = $db->query("UPDATE ".TABLE_PREFIX."users SET usergroup = '".$gid2c."', displaygroup = '".$gid2c."' WHERE uid = '".$users['uid']."'");
}
## Update Usergroup ##
Yes that should do it.