1

了解しました。ここでもコードを最初から作成しようとしていますが、正確に正しく取得できません...ユーザーが所属するグループID(登録ユーザーを除く)を取得して、それをで使用するだけです。次のステートメント:取得したgroup_idが10の場合、指定されたメッセージを返します。それ以外の場合は、取得したgroup_idからユーザーを削除し、group_id 10に配置します。これはこれまでのところですが、dbalのどこかでエラーが発生したと思います。 ..そして、ユーザーグループのadd / del関数については、正しく使用しているかどうかわかりません...また、functions_user.phpを含めましたが、本当に必要かどうか、または正しく配置したかどうかはわかりませんでした。さて、これが私が持っているものです、何か助けはありますか?

    $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']);
    }
4

1 に答える 1

1

了解しました。動作しました...コードは次のとおりです。group_memberships関数を使用して、SQLクエリを削除するだけでなく、group_user_add関数とgroup_user_del関数に正しいブール結果を提供しました。

    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;
于 2012-06-17T01:05:51.100 に答える