我有一个选择框,用户可以选择要附加到系统的文件。所选的每个文件都将插入到数据库中。但是,如果他们取消选择该文件,我希望将其从数据库中删除。
如果不删除该系统上附加到该用户的所有文件并重新插入现在选择的文件,我将如何删除以前选择的不再需要的文件?
<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>
答案 0 :(得分:1)
您可以使用array_diff()。例如:
$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
}