За последние 24 часа нас посетили 30425 программистов и 1795 роботов. Сейчас ищет 801 программист ...

Выборочное обновление формы с большим количеством полей?

Тема в разделе "PHP для новичков", создана пользователем bocharsky, 23 окт 2014.

  1. bocharsky

    bocharsky Новичок

    С нами с:
    18 апр 2014
    Сообщения:
    77
    Симпатии:
    1
    Имею форму, в которой куча полей (имя, фамилия, должность, компания и пр.).

    На странице личного кабинета форма выводится вместе с ранее заполненными данными, чтобы пользователь мог их изменить (обновить).
    Допустим, пользователь хочет изменить только одно поле. Как принято выполнять такие процедуры?

    Понятно, что я могу записать конструкцию UPDATE, куда включить все двадцать полей и при нажатии кнопки "Сохранить", отправлять их на сервер не разбираясь, новое это значение, или старое. В результате одно значение обновится, а 19 перезапишут себя на себя же.
    Но это как-то некрасиво.

    Логично было бы обновлять только то, что на самом деле меняет пользователь.
    Но у меня получаются какие-то чудовищно громоздкие конструкции (20 if, которые проверяют, равно ли старое значение новому, плюс составление строки запроса, где может быть разное количество любых членов "поле = значение").

    Хочу узнать у опытных коллег: как такие задачи решаются на практике?
    Просто отправлять все, не разбираясь одним АПДЕЙТом, включающим все поля, и пусть обновляется?
    Или есть какой-то подход, который оптимизирует это?

    Спасибо.
     
  2. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    ajax-запрос и сохранение поля.
     
  3. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    может все эти операции проделывать в самой БД?

    Добавлено спустя 2 минуты 32 секунды:
    используя подзапросы. Самому не приходилось делать.
    Я все поля обновлял разом.
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    при редактировании все данные должны быть скачаны из БД и держаться в скрипте, при обновлении надо сверять полученные данные с теми что раньше были скачаны, если они отличаются, тогда проводить обновление в БД и тут не должно быть 20 или больше if else, а всего один, если же у вас их 20, ваш код написан не правильно.