Reputation:
I want to delete multiple members form the group, The if statement successfully assigns multiple members from a single group but the Deletion(ifelse) deletes only one member !
if( isset( $_POST['add_member'] ) )
{
$group_id = $_POST['group_id'];
foreach ($_POST['member_id'] as $member) {
$query="SELECT id FROM member_group
WHERE member_id = $member AND `group_id` = $group_id[0]";
if(!mysqli_num_rows(mysqli_query($connection,$query)))
{
$query="INSERT INTO `member_group`(member_id,group_id) VALUES($member,$group_id[0])";
mysqli_query($connection,$query) or die(mysqli_errno($connection));
}
echo "<div class='alert alert-info'>Member Assigned. </div>";
}
}
elseif( isset( $_POST['remove_member'] ) )
{
$member_id = $_POST['member_id'];
foreach ($_POST['group_id'] as $group) {
$query="DELETE FROM member_group
WHERE group_id = $group AND `member_id` = $member_id[0]" ;
$rows = mysqli_query($connection,$query);
Thanks !
Upvotes: 1
Views: 115
Reputation: 28763
If you want to remove all the members of that group then remove condition for member_id
from your query
$query="DELETE FROM member_group WHERE group_id = $group" ;
Or if you want to delete the selected members then from your post you have to extract each member like
$member_arr = explode(',',$_POST['member_id']);
foreach ($member_arr as $member) {
$query="DELETE FROM member_group
WHERE `member_id` = $member" ;
}
If the $member_id[0]
contains multiple values as you mentioned in the comment then you can write your query with IN
like
$query="DELETE FROM member_group
WHERE `member_id` IN (".$member_id[0].") " ;
Considering that $member_id[0]
is in the form 1,2,3,4,5,6
so on.If it is in array
format then you have to use IMPLODE
like
$query="DELETE FROM member_group
WHERE `member_id` IN (".implode(',',$member_id[0]).") " ;
Upvotes: 1