Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кто знает каким способом устанавливается ограничение на хранение инфы в базе,
 
 автор: Dinya_1   (13.11.2008 в 17:16)   письмо автору
 
 

Например в досках обьявлениий часто используется: "Хранить - 1 месяц", "Хранить - 2 месяца"... Как такое достичь?

  Ответить  
 
 автор: Gust   (14.11.2008 в 08:06)   письмо автору
 
   для: Dinya_1   (13.11.2008 в 17:16)
 

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

  Ответить  
 
 автор: cheops   (14.11.2008 в 12:29)   письмо автору
 
   для: Dinya_1   (13.11.2008 в 17:16)
 

Для этого в таблице необходимо завести календарное поле, например, типа DATETIME и заносить в него текущую дату при помощи функции NOW(). А на cron повесить задание удалять записи добавленные месяц назад. Если поле называется putdate, запрос может выглядеть так
DELETE FROM tbl WHERE putdate < NOW() - INTERVAL 1 MONTH

  Ответить  
 
 автор: Dinya_1   (15.11.2008 в 20:28)   письмо автору
 
   для: cheops   (14.11.2008 в 12:29)
 

А можно пример кода, если Кому не трудно...? (Всмысле, как и кчему его приделать?)

  Ответить  
 
 автор: cheops   (16.11.2008 в 11:27)   письмо автору
 
   для: Dinya_1   (15.11.2008 в 20:28)
 

Вас какой участок кода интересует? Дело в том, что все приложение достаточно объемно - у вас что затруднение вызывает - именно код удаления?

  Ответить  
 
 автор: Dinya_1   (24.11.2008 в 17:09)   письмо автору
 
   для: cheops   (16.11.2008 в 11:27)
 

Если можно, хотелось бы посмотреть на весь код добавления, удаления по времени, да и еще не понятно из приведенного примера cheops, в каком виде записывается дата в функцию NOW(). , через тире или через точку или просто цифрами?

  Ответить  
 
 автор: cheops   (24.11.2008 в 20:35)   письмо автору
 
   для: Dinya_1   (24.11.2008 в 17:09)
 

Дело в том, что у при создании таблицы вы можете воспользоваться календарным типом данных, например, DATETIME. Функции для работы со временем автоматически подстраиваются под этот тип, например, для DATETIME, функция NOW() вернет значение вроде "2008-11-24 20:34:00".

  Ответить  
 
 автор: cheops   (24.11.2008 в 20:37)   письмо автору
 
   для: Dinya_1   (24.11.2008 в 17:09)
 

При добавлении записи, содержащей поле DATETIME, вы просто подставляете вместо него функцию NOW() и поле автоматически получает текущее значение
INSERT INTO tbl 
VALUES (NULL, 'Какой-то текст', NOW())

Удаление происходит при помощи оператора DELETE, который был описан выше.

  Ответить  
 
 автор: Dinya_1   (14.03.2009 в 19:35)   письмо автору
 
   для: cheops   (24.11.2008 в 20:37)
 

А что такое "cron" , и как на него установить задание?

DELETE FROM tbl WHERE putdate < NOW() - INTERVAL 1 MONTH 

  Ответить  
 
 автор: cheops   (15.03.2009 в 14:03)   письмо автору
 
   для: Dinya_1   (14.03.2009 в 19:35)
 

cron - это планировщик заданий в UNIX, подробнее можно почитать в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4321.

  Ответить  
 
 автор: Dinya_1   (15.03.2009 в 21:43)   письмо автору
 
   для: cheops   (15.03.2009 в 14:03)
 

Спасибо cheops, скачал и установил nncron LITE изучаю тех.документацию. :)

  Ответить  
 
 автор: Dinya_1   (15.03.2009 в 22:13)   письмо автору
 
   для: cheops   (24.11.2008 в 20:37)
 

-

  Ответить  
 
 автор: Dinya_1   (19.03.2009 в 19:51)   письмо автору
 
   для: cheops   (24.11.2008 в 20:37)
 

Поле: datetime, значение DATETIME
в базе появляются только: 0000-00-00 00:00:00
Как правильно вписать ф-цию NOW() в INSERT?


<?
$result 
mysql_query ("INSERT LOW_PRIORITY INTO forma (oText0,cat,oText1,oText3,oText2,oText4,oText5,
oText6,nazv_razdela,nazvan,date,time,cena,cash,datetime
VALUES ('
$oText0','$cat','$oText1','$oText3','$oText2','$oText4',
'
$oText5','$oText6','$nazv_razdela','$nazvan','$date','$time','$cena','$cash','NOW()')",$db);
?>

  Ответить  
 
 автор: serjinio   (20.03.2009 в 19:40)   письмо автору
 
   для: Dinya_1   (19.03.2009 в 19:51)
 

.....`cash`,`datetime`)
......'$cash', NOW() ) ",$db);

обратные кавычки..и NOW() без...

  Ответить  
 
 автор: Dinya_1   (20.03.2009 в 21:04)   письмо автору
 
   для: serjinio   (20.03.2009 в 19:40)
 

Мда, получилось.. Спасибо!
Не могли бы вы объяснить в чем прикол обр.ковычек, в данном случае?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования