Запуск скрытого текстового поля

я имею в виду это вопрос

Что делать, если скрытое поле используется для хранения времени в дБ при вставке записи & время, когда посетители открывают страницу: 15:00, но он вставляет записи на той же странице без обновления & вставляет в 15:10, затем результаты, по-видимому, в 15:00, потому что время, которое было раньше при загрузке страницы, похоже, было сохранено. Так как же мы продолжаем бежать в скрытом поле!

Больше информации о структуре таблицы, & заявления php:

Имя таблицы: столбцы «Области»: идентификатор, имя, имя области, позиция, время добавления, время обновления, удаление

Использование php mysql.
Скрытое текстовое поле содержит:

<input name="TIME" id="TIME" type="hidden" value="<?php date_default_timezone_set("".$row_CompanyDetails['TimeZone']."");echo "".date("Y-m-d G:i:s");?>">

Теперь допустим, пользователь открыл страницу в 2016-02-14 03:34:59
Так что в скрытом поле значение: 2016-02-14 03:34:59

Допустим, пользователь добавляет запись Через несколько секунд запись показывает: 2016-02-14 03:34:59, где, как и должно быть показано 2016-02-14 03:35:10 или 11 или 12+ ….

Так что мне нужно точное значение. Это очень важно для меня.

1

Решение

Ваш сервер приложений не должен полагаться на отметку времени, отправленную из скрытого ввода.

Вместо этого он должен сам запросить время, когда представление сделано. Это можно сделать как на сервере приложений, так и в самом операторе вставки / обновления базы данных.

Используя информацию в MySql документация, вот как сделать стол районы держать поля TimeAdded а также TimeUpdated к нужной отметке времени (требуется версия MySql> = 5.6):

ALTER TABLE Areas
MODIFY TimeAdded DATETIME DEFAULT CURRENT_TIMESTAMP,
MODIFY TimeUpdated DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

Если ваша версия MySql не поддерживает вышеприведенный оператор, перейдите к следующей альтернативе: создайте триггеры, которые дадут тот же результат:

CREATE TRIGGER insAreas BEFORE INSERT ON Areas FOR EACH ROW
SET NEW.TimeAdded = CURRENT_TIMESTAMP;

CREATE TRIGGER updAreas BEFORE UPDATE ON Areas FOR EACH ROW
SET NEW.TimeUpdated = CURRENT_TIMESTAMP;

При этом вам не нужно обновлять даты, MySql сделает это за вас:

  • Нет необходимости позволять PHP передавать эти даты в инструкциях SQL.
  • Не нужно отправлять даты на скрытые вводы в браузере
  • Не нужно корректировать время или часовые пояса. MySql — единственный, кто обновляет эти времена, используя время на сервере.
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]