PHP中表的多次删除

PHP中表的多次删除,php,mysql,Php,Mysql,我想删除组中的多个成员, if语句成功地从单个组分配了多个成员,但删除(ifelse)只删除一个成员 if( isset( $_POST['add_member'] ) ) { $group_id = $_POST['group_id']; foreach ($_POST['member_id'] as $member) { $query="SELECT id FROM member_group

我想删除组中的多个成员, if语句成功地从单个组分配了多个成员,但删除(ifelse)只删除一个成员

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);
if(isset($\u POST['add\u member']))
{
$group\U id=$\U POST['group\U id'];
foreach($\发布['member\u id']作为$member){
$query=“从成员组中选择id”
其中member_id=$member和`group_id`=$group_id[0];
if(!mysqli_num_rows(mysqli_query($connection,$query)))
{
$query=“插入'member\u group`(member\u id,group\u id)值($member,$group\u id[0])”;
mysqli_query($connection,$query)或die(mysqli_errno($connection));
}
回显“已分配成员。”;
}
}
elseif(isset($\u POST['remove\u member']))
{
$member\u id=$\u POST['member\u id'];
foreach($\u POST['group\u id']作为$group){
$query=“从成员组中删除”
其中group_id=$group和`member_id`=$member_id[0];
$rows=mysqli\u查询($connection,$query);

谢谢!

如果要删除该组的所有成员,请从查询中删除
成员id
的条件

$query="DELETE FROM member_group WHERE group_id = $group" ;
或者,如果你想删除选定的成员,那么你必须从你的帖子中提取每个成员,就像

$member_arr = explode(',',$_POST['member_id']);
foreach ($member_arr as $member) {
    $query="DELETE FROM member_group
            WHERE `member_id` =  $member" ;
}
如果
$member\u id[0]
包含您在注释中提到的多个值,则您可以在
中使用
编写查询,如

$query="DELETE FROM member_group
            WHERE `member_id` IN (".$member_id[0].") " ;
$query="DELETE FROM member_group
            WHERE `member_id` IN (".implode(',',$member_id[0]).") " ;
考虑到
$member\u id[0]
的格式是
1,2,3,4,5,6
等等。如果它是
数组
格式,则必须使用
内爆

$query="DELETE FROM member_group
            WHERE `member_id` IN (".$member_id[0].") " ;
$query="DELETE FROM member_group
            WHERE `member_id` IN (".implode(',',$member_id[0]).") " ;

您的
foreach()
的结束括号在哪里?另外,您可以通过
Where group_id in(“.infrade”(,“,$POST['group_id'])”)在一个查询中完成这项操作。
成员id[0]
的值是多少?它是否包含多个id?如果是,
infrade()
中使用
其中group_id=$group和member_id IN(“.infrade(',',$member_id[0])”)
@georgecummins-yeah$member_id[0]包含多个值。请仔细阅读注入攻击,因为您的代码确实非常脆弱