<form method="POST">
<!-- Данные записи -->
<input type="hidden" name="id" value="{$id}">
<input name="name">
<input name="title">
<textarea name="text"></textarea>
<!-- Параметры записи (существующие) (цикл) -->
<input type="checkbox" name="params[{$param_id}]" value="{$value1}" checked="checked">
<!-- Новые параметры -->
<input name="new_params[]" value="param_value" type="checkbox">
<button>Кнопка добавляющая ещё параметр (через JS)</button>
</form>
$params = array();
foreach ($_POST['params'] as $param_id => $value) {
$params[$param_id] = $value;
}
// найти существующие параметры
$old_params = SELECT * FROM params WHERE ...
foreach ($old_params as $param) {
// удалить снятые
if (!array_key_exists($param['id'], $params)) {
// DELETE FROM params WHERE id = param['id']
}
}
// добавить новые
foreach ($_POST['new_params'] as $param_key => $value) {
// INSERT params SET value = $value, ...
}
А лучше вобще избавиться от $param_id. И просто очищать параметры записи при сохранении, и добавляя только отмеченные.