-1
此代码的目标是继续并将用户组分配到不同的数据库中,我创建了一个开关来指定哪个group_id属于哪个role_id和Admin,但它看起来并不像认识到情况下,只有默认的...我的代码如下:PHP开关未在PHP中注册MySQL
$result2 = $DB->query("SELECT group_id, picture, joindate from ".DB_PREFIX."members where member_id = '".$member_id."'");
if ($DB->num_rows($result)){
$member_obj = $DB->fetch_object($result2);
}
if (!empty($member_obj)){
$member_group_id = $member_obj->group_id;
}
switch ($member_group_id) {
case 1: //Admins
$user_data['role_id'] = "16";
$user_data['admin'] = "1";
break;
case 2: //freemembers
$user_data['role_id'] = "8";
$user_data['admin'] = "0";
break;
case 3: //guests
$user_data['role_id'] = "2";
$user_data['admin'] = "0";
break;
case 4: //pending members
$user_data['role_id'] = "2";
$user_data['admin'] = "0";
break;
case 5: //chatter package members
$user_data['role_id'] = "34";
$user_data['admin'] = "0";
break;
case 6: //cancelled members
$user_data['role_id'] = "2";
$user_data['admin'] = "0";
break;
case 7: //Socialite Member
$user_data['role_id'] = "35";
$user_data['admin'] = "0";
break;
case 8: //socialgod members
$user_data['role_id'] = "36";
$user_data['admin'] = "0";
break;
case 10: //chatadmins
$user_data['role_id'] = "33";
$user_data['admin'] = "0";
break;
case 11: //forummods
$user_data['role_id'] = "2";
$user_data['admin'] = "0";
break;
default: //Guests
$user_data['role_id'] = "8";
$user_data['admin'] = "0";
break;
}
时运行更新网站的SQL如下:
// new member
if (! $arrUserID['user_id']) {
$where_sql .= ", DateFirstVisit = '{$user_data['joindate']}',
DateInserted = '{$user_data['joindate']}',
DateUpdated = '{$user_data['joindate']}'";
$MDB->query("INSERT INTO ".$PREFS->conf['module_vanilla_table_prefix']."User {$where_sql}");
$arrUserID['user_id'] = $MDB->get_insert_id();
if ($arrUserID['user_id']) {
$MDB->query("INSERT INTO ".$PREFS->conf['module_vanilla_table_prefix']."UserRole SET UserID={$arrUserID['user_id']}, RoleID={$user_data['role_id']}");
}
}
// existing member
else {
$MDB->query("UPDATE ".$PREFS->conf['module_vanilla_table_prefix']."User {$where_sql} WHERE UserID = {$arrUserID['user_id']} LIMIT 1");
$MDB->query("UPDATE ".$PREFS->conf['module_vanilla_table_prefix']."UserRole SET RoleID={$user_data['role_id']} WHERE UserID = {$arrUserID['user_id']} LIMIT 1");
}
只是为了澄清,例如,如果$ member_group_id是1,那么它应该将role_id设置为16,将admin设置为1,但是它会自动默认ts to role_id 8 and admin 0
有什么建议吗?
你为什么定义他们大多数是*不是*管理员?为什么不把它作为默认值,只要更改*如果某人是管理员? – Nytrix
嗨@Nytrix它的奇怪如何香草论坛工作....即使管理员= 1用户仍然不是管理员,直到该角色也设置为16 ... –
如果它不断默认,这意味着你不满足你的第二如果在$ member_group_id变为空白的switch之前的语句。做一个回声,看看$ member_obj是否有一个值。这就是为什么你的交换机默认。 – OfficialDtech