В основном у меня есть форма, содержащая несколько флажков (принадлежащих к одной группе), это выбор категории.PHP/MySQL - обновление флажков в базе данных
Когда пользователь хочет ОБНОВИТЬ их выбор, они могут просматривать эту форму, в которой уже есть свои ТЕКУЩИЕ выборы.
Затем пользователь меняет свой выбор и отправляет форму. Теперь мне нужно обновить эти выборки в базе данных. Вот код, у меня есть на данный момент:
// $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