У меня есть следующий код, показанный ниже, чтобы позволить администратору добавлять определенного пользователя в несколько ролей, выбирая из доступных ролей (флажки).Код прекрасно работает для достижения этой цели, но он также должен удалить пользователя, для которого когда-либо роль (флажок) не была выбрана.Флажки позволяют администратору как добавлять, так и удалять пользователя из выбранных ролей.Это та часть, которую я не могу понять.
Если бы кто-нибудь мог провести меня через это, это было бы действительно здорово.Спасибо!
<?php
// declare variables
$msg = '';
// ------------------------------------------------------------------
// UPDATE USER INFO
// ------------------------------------------------------------------
if(isset($_POST['UpdateUser']))
{
// get user id from query string sent
$sent_id = mysqli_real_escape_string($conn, $_GET['uid']);
if(isset($sent_id) && !empty($sent_id) && is_numeric($sent_id) && $sent_id > 0)
{
$user_id = $sent_id;
// ------------------------------------------------------------------
// ADD CURRENT USER TO SELECTED ROLES
// ------------------------------------------------------------------
if(isset($_POST['checked']))
{
// get selected role names
$checked = $_POST['checked'];
$i1=0;
$i2=0;
foreach($checked as $role_name)
{
// get role id
$get_role_id = mysqli_query($conn, "SELECT RoleId FROM roles WHERE RoleName = '$role_name'")
or die($dataaccess_error.mysqli_error($conn));
$row = mysqli_fetch_array($get_role_id);
$role_id = $row['RoleId'];
// check if user already exist in role
$check_if_exist = mysqli_query($conn, "SELECT UserId, RoleId, RoleName FROM users_in_roles WHERE UserId = $user_id AND RoleId = $role_id AND RoleName = '$role_name' LIMIT 1")
or die($dataaccess_error);
if(mysqli_num_rows($check_if_exist) == 0)
{
// add user to roles
$add_user_to_roles = mysqli_query($conn, "INSERT INTO users_in_roles(UserId, RoleId, RoleName) VALUES($user_id, $role_id, '$role_name')")
or die($dataaccess_error.mysqli_error($conn));
$count1 = $i1++ + 1;
$count2 = $i2;
$msg = "<div class='msgBox3'>SUCCESS: USER have been ADDED to ($count1) ROLES - AND ALREADY EXISTS in ($count2).</div>";
}
elseif(mysqli_num_rows($check_if_exist) == 1)
{
$count1 = $i1;
$count2 = $i2++ +1;
$msg = "<div class='msgBox4'>NOTE: USER have been ADDED to ($count1) ROLES - AND ALREADY EXISTS in ($count2).</div>";
}
}
}
else
{
$msg = $msg_error2;
}
}
}
?>