php
  • mysql
  • 2017-04-22 147 views -1 likes 
    -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

    有什么建议吗?

    +0

    你为什么定义他们大多数是*不是*管理员?为什么不把它作为默认值,只要更改*如果某人是管理员? – Nytrix

    +0

    嗨@Nytrix它的奇怪如何香草论坛工作....即使管理员= 1用户仍然不是管理员,直到该角色也设置为16 ... –

    +0

    如果它不断默认,这意味着你不满足你的第二如果在$ member_group_id变为空白的switch之前的语句。做一个回声,看看$ member_obj是否有一个值。这就是为什么你的交换机默认。 – OfficialDtech

    回答

    0

    谢谢你的回复我找到了答案,它现在在这里工作的是以前的SQL和答案以供将来参考,如果其他人有这个问题。

    前:

    $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; 
    } 
    

    第2行设置为$结果,而不是RESULT2这意味着它无法解析信息...修正版本如下:

    $result2 = $DB->query("SELECT group_id, picture, joindate from ".DB_PREFIX."members where member_id = '" . $params['member_id'] . "'"); 
        if ($DB->num_rows($result2)){ 
         $member_obj = $DB->fetch_object($result2); 
        } 
    if (!empty($member_obj)){ 
        $member_group_id = $member_obj->group_id; 
    } 
    

    感谢那些评论过的人!

    相关问题