Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удалять устаревшие записи, MySQL 
:(
    Опции темы
Arisha
Дата 9.6.2004, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 8.5.2004

Репутация: нет
Всего: нет



Здравствуйте!

Кажется, это правильный подход: в БД для каждой записи хранить дату занесения, а при выводе этой записи сверять то поле с текущей датой, например, прошло ли 12 дней.

Ну а если записи в календаре и пользователь сам выбирает дату, за которую ему посмотреть свои записи - тут ведь не удалишь? Но, календарь может показывать только за 3 года - предыдущий, этот, следующий - значит старые не показываются, но в БД-то остаются - как к ним подобраться, чтоб удалить?



PM MAIL   Вверх
Fish
Дата 9.6.2004, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



Arisha
Если хочешь старые записи удалить, которые в календарь не попадают -удаляй без проблем.

Например:

Текущая дата - '09-06-2004'.

В календаре записи с '06-06-1999'.

Задача: удалить все записи введенные с 1900 по 2001.

Твой квери:
Код

DELETE FROM tablename WHERE YEAR(record_date) <= '2001'


Удаляются все записи введенные с 1900 по 2001 год включительно.

record_date - столбец таблицы содержащий дату ввода записи.

Это сообщение отредактировал(а) Fish - 9.6.2004, 06:14
PM MAIL   Вверх
Arisha
Дата 9.6.2004, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 8.5.2004

Репутация: нет
Всего: нет



Fish, а как узнать - когда скрипт запустить?

Я сделала так - при входе пользователя в систему проверяются его записи - если надо, то удаляются.

Только чуть по-другому, не так, как в твоем варианте. Пользователь при вводе новой записи заносит также срок ее жизни, потом now()+interval P day - столбец lifetime. И при входе запускается скрипт - наступила lifetime или нет, т.е.
Код

DELETE FROM shedules
            WHERE login = '".$_SESSION['valid_user']."'
            AND lifetime <= now()"


Так пойдет? thumbs-up.gif
PM MAIL   Вверх
Secandr
Дата 10.6.2004, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



Arisha
запускать скрипт по крону - каждую ночь, и чистить записи для всех пользователей


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.