Я пытаюсь пометить аккаунты как неактивные (user_type = '1'
) которые не вошли (user_lastvisit
) в течение последних 90 дней как неактивные.
user_type сообщает phpbb, если аккаунт 0 = активный или же 1 = неактивно
user_lastvisit последний раз пользователь заходил на доску phpbb. Хранится в формате времени эпохи.
Проблема: я не могу понять, как добавить 90 дней в user_lastvisit (хранится в формате эпохи) и посмотреть, меньше ли оно текущего времени.
$result = mysql_query("UPDATE phpbb_users SET user_type = '1' WHERE DATE_ADD(FROM_UNIXTIME(user_lastvisit), INTERVAL 90 DAY) < NOW() AND user_type = '0'")
or die(mysql_error());
Обновление: я отредактировал запрос, основываясь на предложении ниже.
Взгляни на FROM_UNIXTIME а также DATE_ADD.
С помощью этих двух функций вы сможете преобразовать отметку времени в дату и затем использовать ее для добавления 90 дней.
Пример:
SELECT * FROM yourtable WHERE DATE_ADD(FROM_UNIXTIME(user_lastvisit), INTERVAL 90 DAY) > NOW()
Вместо того, чтобы работать непосредственно в базе данных, что не рекомендуется разработчиками phpBB, вы можете сделать это через панель управления администратора.
Войдите в ACP и выберите Users and groups
Вкладка. Внизу под User security
выберите «Удалить пользователей»
в Last active
раздел установить раскрывающийся список Before
затем введите дату 90 дней назад (как ГГГГ-ММ-ДД)
Ниже этого, убедитесь, что Delete pruned user posts
установлен в No
, а также Deactivate or delete
установлен в Deactivate
Ударь Submit
Кнопка, и это отключит все учетные записи, не использованные в течение последних 90 дней.