Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Funkcja czasowa
Forum PHP.pl > Forum > Przedszkole
GoldeNx3
Witam. Jak mogę zrobić funkcję czasową za pomocą MySql? Np. dałem wpis dnia 10.04.2011 i chce, by za równe 10 dni usunęło automatycznie ten wpis, jak to zrobić?
Potter125
W zasadzie sobie sam odpowiedziałeś wink.gif

Pomyśl logicznie jak to zrobić. Skoro dajesz czas wygaszenia przykładowo 10 dni to możesz to zrobić np tak

|ID|TYTUL|DATA_DODANIA|DATA_WYGASZENIA|

I później np wchodząc w taki moduł wyświetlania wpisów:

  1.  
  2. //schemat
  3.  
  4. if(data_dzisiejsza == DATA_WYGASZENIA) {
  5.  
  6. //delete
  7.  
  8. }
  9.  
  10. //wyswietlanie artykułu
  11.  


Mam nadzieje, że nie oczekiwałeś na gotowca tongue.gif
nekomata
Możesz sobie np. codziennie za pomocą cron'a odpalać skrypt z takim query
  1. DELETE FROM twoja_tabela WHERE kolumna_date < DATE_SUB(NOW(), INTERVAL 10 DAY);
Mógłbyś równie dobrze nie usuwać tylko w query przy pobieraniu dodać takie samo WHERE jak powyżej...
modern-web
CRON to jedno rozwiązanie; ale co jeśli kolegi serwer go nie ma (chociaż to mało prawdopodobne w dzisiejszych czasach ;d). Z bazy danych nic samo się nie usunie, nie ma takiej opcji... trzeba wywołać jakiś skrypt z zapytaniem SQL, który odpowiednio `wyczyści` dane z tabel. Jeśli CRON jest Ci totalnie obcy, lub Twój serwer nie udostępnia takiej opcji polecam import owego query (zapytania SQL) do często odwiedzanej przez użytkowników podstrony. Nie jest to najlepsze rozwiązanie lecz całkiem skuteczne. Po prostu przy każdym wyświetleniu podstrony wykona się `w tle` zapytanie do bazy danych i tym samym wykona pożądaną przez Ciebie operację.

Pozdrawiam!
GoldeNx3
Ok, ale gdzie najstosowniej odpalić ten skrypt?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.