基本上我有一个包含几个复选框(属于同一个组)的表单,这些是类别选择。PHP/MySQL - 更新数据库中的复选框选择
当用户想要更新他们的选择时,他们可以查看此表单 - 已经有CURRENT选项打勾。
用户然后更改他们的选择并提交表单。我现在需要在数据库中更新这些选择。这里是我此刻的代码:
// $old_selections contains an ARRAY of IDs - I use this to pre-select the checkboxes
$old_selections = Listing::getSelections();
if(isset($_POST['update']))
{
// $_POST['selections'] is an ARRAY of posted IDs
$new_selections = $_POST['selections'];
foreach($new_selections as $selection)
{
// insert a new record using $selection
}
}
所以目前这增加了新的选择到数据库中,但不会删除任何现有的。理想情况下,这应该有点聪明 - 而不是只删除所有现有的条目,它应该比较两个数组,并根据需要删除/插入。
此外,如果用户剔除所有选择,那么显然需要删除所有现有条目。
什么是最有效的实现方式?
我认为你的想法“过度”。我真的认为先删除所有条目会更有效,因为那样你就不必担心比较了。 – bestprogrammerintheworld