Have a table called "provider_assignments".
The columns in provider_assignments are: id, provider_id, employee_id.
On the Manage Provider page, all employees are listed from table "accounts" with permissions > 0. (Employees are given permissions of either 5 or 9).
If there is a row in "provider_assignments" with "provider_id" of the current provider_id (specified in url using ?provider_id=) AND "employee_id" of the employee id from array, the "assigned" checkbox is checked.
Currently, I am able to insert a new row in "provider_assignments" if an unchecked box becomes checked. All checkboxes have the same name: "employee_assigned[]" using foreach.
I now need to remove any existing rows in "provider_assignments" for any unchecked boxes.
I was going to try to create a comma delimited list and explode, but I need the employee id, not just an array number ([1], [2], etc)
Exploding $unassigned_employees won't give me the employee ID.
// Update Provider
elseif (isset($_POST['update_pro_submit'])) {
// inputs
$pro_name = $_POST['pro_name'];
$pro_firstname = $_POST['pro_firstname'];
$pro_lastname = $_POST['pro_lastname'];
$pro_email = $_POST['pro_email'];
$pro_username = $_POST['pro_username'];
$pro_password = hash("sha256", $_POST['pro_password']);
$pro_cpassword = hash("sha256", $_POST['pro_cpassword']);
$pro_permissions = $_POST['pro_permissions'];
$pro_phone = $_POST['pro_phone'];
$pro_id = $_POST['pro_id'];
// update checked assignments
foreach ($_POST['employee_assigned'] as $assign_this_employee) {
// check for existing assignment
$check_exist = "SELECT * FROM `provider_assignments` WHERE `provider_id` = '".$pro_id."' AND `employee_id` = '".$assign_this_employee."'";
$exist_result = mysqli_query($dblink, $check_exist);
$exist_count = mysqli_num_rows ($exist_result);
// if assignment doesn't exist, insert assignment
if ($exist_count == 0) {
// insert sql
$add_assignment_sql = "INSERT INTO `provider_assignments` (`provider_id`, `employee_id`) VALUES ('".$pro_id."', '".$assign_this_employee."')";
// execute sql
if (mysqli_query($dblink, $add_assignment_sql)) {
} else {
die ("assignment error");
}
}
}
// update unchecked assignments
foreach ($unassigned_employees as $unassigned_employee) {
// check for existing assignment
$check_pre_exist = "SELECT * FROM `provider_assignments` WHERE `provider_id` = '".$pro_id."' AND `employee_id` = '".$unassigned_employee."'";
$check_pre_result = mysqli_query($dblink, $check_pre_exist);
$check_pre_count = mysqli_num_rows($check_pre_result);
if ($check_pre_count == 1) {
// removal sql
$delete_pre_assign = "DELETE FROM `provider_assignments` WHERE `provider_id` = '".$pro_id."' AND `employee_id` = '".$unassigned_employee."'";
// execute sql
if (mysqli_query($dblink, $delete_pre_assign)) {
} else {
die ("unassignment error");
}
}
Any help greatly appreciated.
Aucun commentaire:
Enregistrer un commentaire