Thanks Paul. I've got the userid working now, apparently, via a variable.
But I think I've got problems with correctly passing the membergroups data. Before messing around with all the logic of when I do what, I thought I'd best get the queries down pat. So here's a basic test case I'm working with right now:
PHP Code:
global $vbulletin;
$userid = $vbulletin->userinfo['userid'];
if ($vbulletin->userinfo['field5'] == $vbphrase['tug_member_password'])
{
// ### PASSWORD IN PROFILE, SET MGROUPS TO 12 ###
$updatefields = $vbulletin->db->query("
UPDATE user
SET membergroupids='12'
WHERE userid=$userid
");
}
else
// ### PASSWORD IN PROFILE, SET MGROUPS TO '' ###
{
$updatefields = $vbulletin->db->query("
UPDATE user
SET membergroupids=''
WHERE userid=$userid
");
}
This seems to work, most of the time, although if I make some changes then change back to the exact same code sometimes it doesn't work. Haven't got that figured out at all ... very frustrating (??) But anyhow, when it works, the password comparison logic works and group 12 gets turned on and off as it should. It also works with SET membergroupids='9,12' as I'd need if he was already in group 9 and we wanted to add 12 to it.
Now, if I do this instead:
PHP Code:
.
.
$new_mg = '12'
$updatefields = $vbulletin->db->query("
UPDATE user
SET membergroupids=$new_mg
WHERE userid=$userid
");
that seems to work too.
But if I have $new_mg = '' or $new_mg = '9,12' I get a database error:
Quote:
Invalid SQL:
UPDATE user
SET membergroupids=
WHERE userid=0;
MySQL Error : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE userid=0' at line 3
|
Note my userid is lost too. I suspect I've got some sort of basic data type problem I don't understand (strings vs numbers vs arrays?)