基本上我有一個包含幾個複選框(屬於同一個組)的表單,這些是類別選擇。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