Php 如果用户选择文件,如何从数据库中删除以前选择的文件?

Php 如果用户选择文件,如何从数据库中删除以前选择的文件?,php,mysql,mysqli,Php,Mysql,Mysqli,我有一个选择框,用户可以在其中选择要附加到系统的文件。选定的每个文件都会插入到数据库中。但是,如果他们取消选择该文件,我希望它的行从数据库中删除 如果不删除该系统上附加到该用户的所有文件并重新插入现在选定的文件,我如何删除以前选定的不再需要的文件 <select name="choose_files[]" class="multi-select" multiple="" id="attach_files"> <?php foreach ($files AS $file) {

我有一个选择框,用户可以在其中选择要附加到系统的文件。选定的每个文件都会插入到数据库中。但是,如果他们取消选择该文件,我希望它的行从数据库中删除

如果不删除该系统上附加到该用户的所有文件并重新插入现在选定的文件,我如何删除以前选定的不再需要的文件

<select name="choose_files[]" class="multi-select" multiple="" id="attach_files">
<?php
  foreach ($files AS $file) { 
    echo '<option value="' . $file['id'] . '"';
    if ($file['id'] === $compared['file_id']) 
    { echo ' SELECTED';}
  }
   echo '>' . $file['originalFilename'] . '</option>';
  } ?>
 </select>

您可以使用。例如:

$current_files = get_current_files();
$post_files = $_POST['choose_files'];

$remove = array_diff($current_files, $post_files);
$add = array_diff($post_files, $current_files);

if (!empty($remove)) {
    // remove these files from DB
}

if (!empty($add)) {
    // add these files to DB
}

您还应该发布处理此表单的“更新”函数。更新/删除函数尚未构建,该代码是作为示例提供的,以防我的描述过于模糊。您必须向服务器发送一些内容,否则不会有任何更改。在php代码中,您可以将发送列表与数据库中的文件列表进行比较。之后,您可以删除已识别的行。基本上,抓取上一个列表的列表,在提交时,从上一个列表中删除文件,然后插入新的文件?文件大小和哈希可以为您提供一个线索,如果文件是您已经拥有或没有的文件。(可能是计算客户端上的变量并发送,而不是文件本身)谢谢,我的变量在代码中是相反的-因此我的数组_diff的行为类似于$add而不是$remove,反之亦然。