Я хотел бы поделиться тем, что я делаю в своем приложении. Это в основном то же самое с моим ответом в на этот вопрос .
- После отправки пользователем и перед входом в базу данных я извлечу имеющиеся в базе данных данные в массив. Пример:
$collection = array('111', '112', '113', '114');
(Это только для примера. В действительности, он должен извлечь из базы данных, а затем поместить значение в массив)
- Я проверю новый пользовательский ввод в два этапа. Первый шаг - посмотреть, есть ли он в базе данных или нет. Если это не так, то вставьте. В противном случае игнорируйте:
foreach ( $inputs as $input )
{
if ( ! in_array($input, $collection) )
{
//do insert here
}
}
Затем во втором цикле я делаю это в обратном порядке, чтобы удалить данные, которые не были выбраны пользователем.
foreach ( $collection as $data )
{
if ( ! in_array($data, $inputs) )
{
//do delete here
}
}
В вашем случае вам может понадобиться или не понадобиться второй цикл. Мне это нужно, поскольку я делаю ввод в виде флажков, чтобы пользователь мог активировать / деактивировать его, поэтому я перевожу его как вставка и удаление.
Поскольку вы будете реализовывать его с помощью множественного выбора, то в основном то же самое с моими флажками.
Если у вас есть пример структуры или кода, не стесняйтесь поделиться им, и я помогу вам точно настроить его (конечно, с моим стилем, который еще может или не может быть оптимизирован).