2012-06-14 1 views
1

좋아, 여기에서 다시 처음부터 코드를 작성하려고하는데 정확하게 맞출 수 없습니다 ... 사용자가 속한 그룹 ID를 검색하면됩니다. (등록 된 사용자 제외) 다음 명령문에서이를 사용하십시오. 검색된 group_id가 10이면 지정된 메시지를 리턴하고 검색된 group_id에서 사용자를 제거하고 group_id 10에 배치하십시오. 이것은 지금까지 가지고있는 것이지만 생각합니다 어딘가에서 dbal 오류를 만들었습니다 ... 그리고 사용자 그룹 add/del 함수에 관해서는, 필자가 올바르게 사용하고 있는지 확실하지 않습니다 ... 또한 functions_user.php를 포함 시켰지만 확실하지 않았습니다 나는 그것을 올바르게 배치해야 할 필요가있었습니다. 여기 제가 가진 건, 어떤 도움 이죠?Dbal 및 PhPBB 함수를 사용하여 PhP SQL 쿼리

$integer = 2; 

    $sql = 'SELECT group_id FROM ' . USER_GROUP_TABLE . ' 
      WHERE user_id = ' . (int) $user->data['user_id'] . " 
      AND group_id != '" . (int) $integer . "'"; 
    $result = $db->sql_query($sql); 

    if ($result == 10) 
    { 
     $message = sprintf($user->lang['CANNOT_USE_TRAVEL_ITEM'], $this->data['name']); 
    } 
    else 
    { 
     include($phpbb_root_path . 'includes/functions_user.' . $phpEx); 

     $userid = $user->data['user_id']; 

     group_user_add((10), array($user_id)); 
     group_user_del(($result), array($user_id)); 

     $message = sprintf($user->lang['TRAVEL_ITEM_NOW_USE'], $this->data['name']); 
    } 

답변

1

좋아, 나는 그것을 작동 시켰어 ... 여기 코드가있다. group_user_add 및 group_user_del 함수에 올바른 부울 결과를 제공 할뿐만 아니라 SQL 쿼리를 제거하기 위해 group_memberships 함수를 사용했습니다.

global $user, $shop, $db, $phpEx, $phpbb_root_path; 

    $this->remove_item(); 

    include($phpbb_root_path . 'includes/functions_user.' . $phpEx); 

    if (group_memberships(10,$user->data['user_id'],true)) 
    { 
     $message = sprintf($user->lang['CANNOT_USE_TRAVEL_ITEM'], $this->data['name']); 
    } 
    else 
    { 
     $groups = group_memberships(false,$user->data['user_id']); 
     foreach ($groups as $grouprec) 
     { 
       $groupid = $grouprec['group_id']; 
     } 

     group_user_add((10), array($user->data['user_id'])); 
     group_user_del(($groupid), array($user->data['user_id'])); 

     $message = sprintf($user->lang['TRAVEL_ITEM_NOW_USE'], $this->data['name']); 
    } 

    return $message;