| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Удаление данных таблицы, каждый день |
| Автор: Oriander 26.6.2009, 02:10 |
| Здравствуйте, уважаемые пользователи. Подскажите как эффективнее реализовать данный сабж. |
| Автор: Рыжий 26.6.2009, 02:39 |
| Oriander, Для этого создан http://ru.wikipedia.org/wiki/Cron. Уверен, он поддерживается твоим хостером. Помести скрипт в определенный файл и передай его крону. Можешь сам - через панель управления хостингом (к примеру...), или попроси хостера, чтобы это сделал за тебя. |
| Автор: Oriander 26.6.2009, 14:48 |
| Огромное спасибо. Это самый оптимальный вариант? |
| Автор: Guedda 27.6.2009, 08:37 |
cron - самый оптимальный вариант (и практически единственный, который поддерживается большинством хостеров). |
| Автор: skyboy 27.6.2009, 09:47 |
| хм, "оптимальность" зависит от условий. например, если у тебя windows хостинг, то CRON'a там не будет. А будет планировщик windows. или запуск удаления зависит от сторонних по отношению к сайту факторов(организационных вопросов, например) - как тогда сможет CRON эти факторы определять? сложно говорить об оптимальности, когда ты: а) не называешь условий б) не указываешь на возможные варианты |
| Автор: Oriander 30.6.2009, 22:03 |
| Спасибо, информативно. |
| Автор: Oriander 23.1.2010, 18:25 |
| А если взять значение времени на сервере и сделать условие: если время = 0:00, то (запрос на удаление данных из таблицы БД MySQL) Так покатит? |
| Автор: Ипатьев 23.1.2010, 18:40 |
| ого. ровно через полгода вопрос встал снова. а можно поинтересоваться - что это за данные и зачем их удалять? |
| Автор: Oriander 23.1.2010, 19:16 |
| Если поможете по данному вопросу, то скажу. А - так... простой массив чисел в БД, который нужно обновлять ежедневно. Т.е. удалять в 0:00, а по ходу дня люди туда будут забивать свои свежия данные по простой форме на сайте. И видеть данные только уже в html(пхп)-таблице И снова DELETE данных ровно в 0:00 и снова новая информация... вот такой вот алгоритм. Меня интересует именно то, как в заданное время можно удалить записи из таблицы. Все про какой-то КРОН говорят, про планировщики. А зачем они, если можно взять значение времени у сервера и написать условие запроса для удаления данных записей из таблицы БД именно в это время? Короче, ща именно так и попробую.. |
| Автор: Ипатьев 23.1.2010, 19:25 |
| А что будет, если в 0:00 никто на сайт не зайдет? |
| Автор: Oriander 23.1.2010, 19:53 |
| Я только что это сам осознал. Спасибо, подтвердили мои суждения. Добавлено через 10 минут и 45 секунд Это все на стороне хостеров управление? Или существуют интерфейсы для управления им? |
| Автор: Ипатьев 23.1.2010, 20:22 |
| а почему нельзя просто оставлять данные в таблице? |
| Автор: Oriander 24.1.2010, 15:02 |
| Нельзя оставлять записи прошлого дня на обозрение в хтмл(пхп)-таблице. Или можно прописывать условия вывода по дате? Подскажите алгоритм |
| Автор: Ипатьев 24.1.2010, 15:16 |
| Вот мне сразу показалось, что вопрос, как это часто бывает, продиктован отстствием знаний, а не реальной необходимостью. И в уточнении вопроса видно то, о чем я всегда говорю - новички не отличают нормальный подход от ненормального. Оба имеют в их глазах примерно одинаковую ценность. И звучит оно примерно как "Мне надо отрезать палец. Нельзя, чтобы он болел. Или можно мазью помазать?" "прописывать условия" - это то, ради чего база данных и была придумана. |
| Автор: Oriander 24.1.2010, 18:22 |
| Т.е. нужно взять у сервера дату текущую и в запросе говорить: выводить все записи этого дня? Т.е. в таблице БД есть время типа **.**.**** Оно его будет сравнивать, как строку символов, а не как целочисленную переменную? Ну блин можете описать алгоритм? :( Не дойдет до меня |
| Автор: Ипатьев 24.1.2010, 19:28 |
| Не можем. Потому что дата должна храниться в формате ****-**-** После приведения даты к правильному виду (и типу - в mysql есть специальный тип поля для даты) читать про WHERE и NOW() Сравнения пишутся так же, как в РНР и других языках. |
| Автор: Oriander 24.1.2010, 20:48 |
| WHERE я знаю, NOW() почитаю, спасибо |
| Автор: Ипатьев 24.1.2010, 21:35 |
| now() как раз не принципиально можно и в РНР текущую дату сформировать. Не now(), кстати, а curdate() Если вы знали про where, то непонятно, в чем тогда вообще вопрос был. этот оператор и нужен для того, чтобы фильтровать записи. |
| Автор: Oriander 24.1.2010, 22:05 |
| я немного подзабылся просто. |
| Автор: Oriander 24.1.2010, 22:05 |
| я немного подзабылся просто. SELECT * FROM dbname WHERE time=NOW() Как-то так... Или как? Если имя таблицы = dbname а имя поля = time, ? |
| Автор: Ипатьев 24.1.2010, 22:22 |
| SELECT * FROM dbname WHERE time=curdate() если time в формаде гггг-мм-дд |
| Автор: Oriander 24.1.2010, 23:37 |
| А что делать с часовыми поясами, если я захочу к примеру купить хостинг в америке? Как делать поправку? |
| Автор: Ипатьев 25.1.2010, 11:27 |
| и в мускуле и в пхп есть настройки часового пояса. можно и руками отнимать. |
| Автор: Oriander 25.1.2010, 21:16 |
| Как же я люблю этот форум, где есть тенденция, что люди помогают таким дуракам, как я. Спасибо что вы есть, ребята. Тему помечаю решенной. |