Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2014, 14:30   #1
limon142
Пользователь
 
Регистрация: 04.11.2013
Сообщений: 48
По умолчанию авто удаление

Здравствуйте, удаляю с базы строки путем нажатии на кнопку
PHP код:

function delete_from(){
    
        
$sql 'DELETE FROM #__r_lt
            WHERE user_id = '
.$user->get('id',0).' AND lt_id = '.JRequest::getVar('lt_id',0,'','int');
        
$database->setQuery($sql);
        
$database->query();
        exit (
'ok');
        die();
    } 
подскажите, а как сделать, авто удаление например раз в месяц с выводам оставшихся дней.
limon142 вне форума Ответить с цитированием
Старый 19.10.2014, 15:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Поискать, есть ли в твоем СУБД возможность запускать скрипты по расписанию.
В MS SQL такое можно c помошью планировщика винды. В InterBase и Informix тоже вроде есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.10.2014, 07:03   #3
limon142
Пользователь
 
Регистрация: 04.11.2013
Сообщений: 48
По умолчанию

на сервере есть планировщик Cron,
Например объявление было добавлено в базу и записано в таблицу #__r_lt. (все поля есть в таблице)
пользователем user_id=1 с присвоенным ему номером lt_id=25 и записанной датой опубликования этого объявления dP_pr=12.12.14
Как в Cron правильно написать функцию для удаления нужной мне строки в таблице #__r_lt.
то-есть сделать выборку по дате, прошло 30 дней с момента публикации объявления оно пошло на удаление с помощью function delete_from
limon142 вне форума Ответить с цитированием
Старый 20.10.2014, 07:12   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

по линуксу я не спец.
А зачем вообще это делать нужно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.10.2014, 07:31   #5
limon142
Пользователь
 
Регистрация: 04.11.2013
Сообщений: 48
По умолчанию

Сайт интернет магазин, у людей в карнизах фиксируется оплаченный товар и если этот товар не подошёл по каким та причинам его можно отправить в раздел пристрой и чтоб этот разделе не захламлялся проданными товарами, нужно с делать каждое объявление на самоочистку т.к. многие забываю удалять после продажи не подошедшего товара. После удаления товар автоматически перемещается обратно в корзину. Прошло дней 30 товар попал обратно в корзину.
Соответственно проданный товар не кто опять публиковать не будет, а не проданный опять можно опубликовать на те же самые 30 дней.
limon142 вне форума Ответить с цитированием
Старый 20.10.2014, 07:47   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
и чтоб этот разделе не захламлялся проданными товарами, нужно с делать каждое объявление на самоочистку
ИМХО: Ниче хорошего ты такой очисткой не добьешься. Размер базы не уменьшится.
Лучше просто не показывать товар, который не был куплен, присвоив в корзине ему некий статус.
А с очисткой (в принципе) нужно быть поаккуратнее. Иначе так можно случайно "почиститься" до крэша твоего магазина. Были случаи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.10.2014, 07:57   #7
limon142
Пользователь
 
Регистрация: 04.11.2013
Сообщений: 48
По умолчанию

Что та даже не подумал, хорошая идея добавить в таблицу #__r_lt поле например op_pr с цифрой 0 опубликовано, а с цифрой 1 не опубликовано. Но опять вопрос остался как сделать чтоб эти флаги менялись с 1 на 0 по истечению 30дней???
И поставить кнопку обновить при нажатии обновлялась дата публикации??? соответственно отчет 30дней начинался от обновленной даты.

Последний раз редактировалось limon142; 20.10.2014 в 08:03.
limon142 вне форума Ответить с цитированием
Старый 20.10.2014, 09:12   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Вместо флагов 0 и 1 пишите дату публикации и не показывайте то, что старше 30 дней. Для обновления просто впишите новую дату. Лучше всего даты публикаций вынести в отдельную таблицу.
waleri вне форума Ответить с цитированием
Старый 20.10.2014, 09:25   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Но опять вопрос остался как сделать чтоб эти флаги менялись с 1 на 0 по истечению 30дней???
ещё раз. Не нужно ничего менять. Храните дату.
В условиях запроса указывайте, если дата отличается от текущей больше чем на XX дней, данную запись не выбирать. Всё. проблема решена.

вот, согласен с waleri (я не обновил страницу и не увидел пост...)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.10.2014, 10:01   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Вот именно. Дата - самое оно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать авто удаление книги в заданное время barbus Microsoft Office Excel 9 17.07.2013 12:08
Авто-копирование строки вниз при заполнении текущей (или авто-отображение скрытой ниже) bygaga Microsoft Office Excel 6 25.11.2011 14:46
Авто winz Работа с сетью в Delphi 0 26.03.2011 21:18
авто голос Alex2009 Фриланс 5 13.11.2009 17:39
Авто удаление программы DartMrakkk Win Api 14 11.06.2008 02:13