php/sql:使用select选项删除多个数据

bpzcxfmw  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(365)

现在我创建了一个可以使用select选项删除多个数据的系统。但我有一些问题。当我只选择一个数据,并按下按钮删除,它将删除。但是如果我选择多个数据,例如3个数据,它只会删除数据的最新id。下面是我的图片

下面是我的代码:
索引.php

<form method="post" id="multiple_select_form">
 <select name="framework" id="framework" class="form-control selectpicker" data-live-search="true" multiple>
    <?php foreach ($results as $row2): ?>
        <option value= <?php echo $row2["framework_id"]; ?>><?php echo $row2["framework_name"];?></option>
    <?php endforeach ?>
 </select>
 <br /><br />
 <input type="hidden" name="framework_id" id="framework_id" />
 <input type="submit" name="submit" class="btn btn-info" value="Submit" />
</form>

    <script>

    $(document).ready(function(){
    $('.selectpicker').selectpicker();

    $('#framework').change(function(){
    $('#framework_id').val($('#framework').val());
    });

    $('#multiple_select_form').on('submit', function(event){
    event.preventDefault();
    if($('#framework').val() != '')
    {
    var form_data = $(this).serialize();
    $.ajax({
        url:"insert.php",
        method:"POST",
        data:form_data,
        success:function(data)
        {
        //console.log(data);
        $('#framework_id').val('');
        $('.selectpicker').selectpicker('val', '');
        alert(data);
        }
    })
    }
    else
    {
    alert("Please select framework");
    return false;
    }
    });
    });

    </script>

插入.php

<?php

    include("configPDO.php");

    $smt = $conn->prepare("DELETE FROM frame_list WHERE framework_id = '".$_POST["framework_id"]."'");
    $smt->execute();

    if($smt){

        echo "Data DELETED";
    }else{
        echo "Error";
    }

    ?>

有人知道怎么解决这个问题吗?谢谢

djmepvbi

djmepvbi1#

framework 每次将保留一个值。
使用输入数组-
改变 name="framework"name="framework[]" .
在查询中-

WHERE framework_id in ('". implode("','", $_POST["framework_id"]) ."')"

尝试使用参数绑定以确保安全性。

相关问题