Имею форму, в которой куча полей (имя, фамилия, должность, компания и пр.). На странице личного кабинета форма выводится вместе с ранее заполненными данными, чтобы пользователь мог их изменить (обновить). Допустим, пользователь хочет изменить только одно поле. Как принято выполнять такие процедуры? Понятно, что я могу записать конструкцию UPDATE, куда включить все двадцать полей и при нажатии кнопки "Сохранить", отправлять их на сервер не разбираясь, новое это значение, или старое. В результате одно значение обновится, а 19 перезапишут себя на себя же. Но это как-то некрасиво. Логично было бы обновлять только то, что на самом деле меняет пользователь. Но у меня получаются какие-то чудовищно громоздкие конструкции (20 if, которые проверяют, равно ли старое значение новому, плюс составление строки запроса, где может быть разное количество любых членов "поле = значение"). Хочу узнать у опытных коллег: как такие задачи решаются на практике? Просто отправлять все, не разбираясь одним АПДЕЙТом, включающим все поля, и пусть обновляется? Или есть какой-то подход, который оптимизирует это? Спасибо.
может все эти операции проделывать в самой БД? Добавлено спустя 2 минуты 32 секунды: используя подзапросы. Самому не приходилось делать. Я все поля обновлял разом.
при редактировании все данные должны быть скачаны из БД и держаться в скрипте, при обновлении надо сверять полученные данные с теми что раньше были скачаны, если они отличаются, тогда проводить обновление в БД и тут не должно быть 20 или больше if else, а всего один, если же у вас их 20, ваш код написан не правильно.