Перейти к содержимому


Периодическое очищение поля


Сообщений в теме: 10

#1 Сан Саныч

    Участник

  • Пользователи
  • PipPip
  • 27 сообщений

Отправлено 20 Апрель 2016 - 10:13

Есть поле с текстом, который там периодически накапливается, нужно что бы например каждое воскресение поле очищалось и в понедельник сотрудник вносил новые сведения в чистое поле и так далее...

#2 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Апрель 2016 - 10:18

Создайте вычисление на отображение поля
if (date('w')==0)
{
   $line['Ваше поле'] = '';
}

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#3 Сан Саныч

    Участник

  • Пользователи
  • PipPip
  • 27 сообщений

Отправлено 20 Апрель 2016 - 10:32

Просмотр сообщенияandibrag (20 Апрель 2016 - 10:18) писал:

Создайте вычисление на отображение поля
if (date('w')==0)
{
   $line['Ваше поле'] = '';
}

Т.е. в данном случае if (date('w')==0) подразумевает если воскресенье - очистить "Мое поле"? 0 в данном случае знак воскресение, 1 - понедельник и т.д? День недели привязан в таком случае к системному времени?
И еще вопрос, если период нужен календарный месяц...

Сообщение отредактировал Сан Саныч: 20 Апрель 2016 - 10:37


#4 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Апрель 2016 - 10:42

Просмотр сообщенияСан Саныч (20 Апрель 2016 - 10:32) писал:

Т.е. в данном случае if (date('w')==0) подразумевает если воскресенье - очистить "Мое поле"? 0 в данном случае знак воскресение, 1 - понедельник и т.д? День недели привязан в таком случае к системному времени?
Да.

Просмотр сообщенияСан Саныч (20 Апрель 2016 - 10:32) писал:

И еще вопрос, если период нужен календарный месяц...
if (date('j')==1)
{
   $line['Ваше поле'] = '';
}
Функции работы с датой и временем.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#5 Сан Саныч

    Участник

  • Пользователи
  • PipPip
  • 27 сообщений

Отправлено 20 Апрель 2016 - 11:09

ВСЕ, разобрался, спасибо, работает.

Сообщение отредактировал Сан Саныч: 20 Апрель 2016 - 11:28


#6 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Апрель 2016 - 11:22

Просмотр сообщенияСан Саныч (20 Апрель 2016 - 11:09) писал:

if (date('w')==0){$line['Неделя'] = ''};
Ошибка в вычислении. Точку с запятой перенесите внутрь фигурной скобки.

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#7 Сан Саныч

    Участник

  • Пользователи
  • PipPip
  • 27 сообщений

Отправлено 20 Апрель 2016 - 11:36

Просмотр сообщенияandibrag (20 Апрель 2016 - 11:22) писал:

Ошибка в вычислении. Точку с запятой перенесите внутрь фигурной скобки.
Со скобками разобрался...
попробовал поставить вычисление на сегодня (среда), запустил, затирает, предыдущие записи т.е. то что надо. Но он затирает и запись которую внес после этого сегодня. Может нужно конкретное время прописать например: воскресение, 00:00:00 ч.
например if (date('w H:i:s')==0 00:00:00){$line['Неделя'] = ''; так не работает

Сообщение отредактировал Сан Саныч: 20 Апрель 2016 - 12:20


#8 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 20 Апрель 2016 - 14:47

Просмотр сообщенияСан Саныч (20 Апрель 2016 - 11:36) писал:

он затирает и запись которую внес после этого сегодня. Может нужно конкретное время прописать например: воскресение, 00:00:00 ч.
например if (date('w H:i:s')==0 00:00:00){$line['Неделя'] = ''; так не работает
Точно. Про время не подумал. Нужно поставить в условие. Но так работать не будет.
Чуть позднее напишу варианты.

Сообщение отредактировал andibrag: 20 Апрель 2016 - 14:49

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#9 andibrag

    Прежде, чем задать вопрос, продумайте свое решение.

  • Активный пользователь
  • PipPipPip
  • 1 356 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 21 Апрель 2016 - 11:40

Просмотр сообщенияandibrag (20 Апрель 2016 - 14:47) писал:

Чуть позднее напишу варианты.
У Вас есть выбор.
Первый способ - использовать крон, который будет запускать скрипт согласно прописанному графику.
Для этого в настройках cron создать новую задачу и в поле Команда вписать код с использование update_query
$data['Неделя'] = '';
update_query($data, "Ваша таблица", "Условие");
Если обнулять нужно поле во всех записях таблицы, то вместо условия поставьте 1.
И еще подозреваю, что возможно вместо "Неделя" в вычислениях крон нужно использовать внутреннее имя поля - найдете в настройках полей таблицы. Это лучше у разработчиков уточнить.

Второй способ - создать еще одно поле, например Очищено, которое содержит номер недели, когда была произведена очистка содержимого.
В вычислении пропишите:
if (date('W')!= $line['Очищено'])
// если номер текущей недели не совпадает с числом в поле Очищено - удаляем данные и обновляем номер недели
{
  $line['Неделя'] = '';
  $line['Очищено'] = date('W');
}
Выбирайте.
И лучше это отдельной темой вынести.

Сообщение отредактировал andibrag: 21 Апрель 2016 - 11:43

Творческая группа "ТАВР".

www.TAVR.pro Художественная ковка, металлоконструкции.

www.СтолМет.рф Складные столы, стулья и системы для их хранения


#10 Сан Саныч

    Участник

  • Пользователи
  • PipPip
  • 27 сообщений

Отправлено 21 Апрель 2016 - 12:08

Просмотр сообщенияandibrag (21 Апрель 2016 - 11:40) писал:

У Вас есть выбор.
Первый способ - использовать крон, который будет запускать скрипт согласно прописанному графику.
Для этого в настройках cron создать новую задачу и в поле Команда вписать код с использование update_query
$data['Неделя'] = '';
update_query($data, "Ваша таблица", "Условие");
Если обнулять нужно поле во всех записях таблицы, то вместо условия поставьте 1.
И еще подозреваю, что возможно вместо "Неделя" в вычислениях крон нужно использовать внутреннее имя поля - найдете в настройках полей таблицы. Это лучше у разработчиков уточнить.

Второй способ - создать еще одно поле, например Очищено, которое содержит номер недели, когда была произведена очистка содержимого.
В вычислении пропишите:
if (date('W')!= $line['Очищено'])
// если номер текущей недели не совпадает с числом в поле Очищено - удаляем данные и обновляем номер недели
{
  $line['Неделя'] = '';
  $line['Очищено'] = date('W');
}
Выбирайте.
И лучше это отдельной темой вынести.

спасибо за варианты, не совсем понял в 1-м "Условие" что в нем должно быть? Конкретная таблица?

Сообщение отредактировал Сан Саныч: 21 Апрель 2016 - 12:09


#11 Сан Саныч

    Участник

  • Пользователи
  • PipPip
  • 27 сообщений

Отправлено 21 Апрель 2016 - 12:26

все, разобрался, работает, СПАСИБО!!!

Сообщение отредактировал Сан Саныч: 21 Апрель 2016 - 12:43






Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных