Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Funkcja odliczania czasu + Usuwanie po upływie czasu.
Klycior
post 15.03.2010, 18:46:22
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 2
Dołączył: 31.05.2009

Ostrzeżenie: (0%)
-----


Witam,
Posiadam panel w którym user wykupuje lepszy typ konta.
Działa to na takiej zasadzie kiedy wykupi konto VIP to w bazie mam tabelę do kiedy i w niej tworzy się teraźniejszy czas oraz dodaje 31 dni tworząc czas do kiedy jest VIP.Napisałem sobie panel w którym mam wgląd kto do kiedy ma konto VIP lecz mam problem ponieważ kiedy czas przekroczy mam w efekcie: -57891 sekunde.
Posłużyłem się funkcją time() i moje pytanie jak zrobić żeby odliczało jeszcze w tył czyli 3 dni temu.

A 2 moje pytanie:

Napisałem funkcję która powoduje jeżeli czas z "dokiedy" jest równy czasowi time() to STATUS przy danym użytkowniku zmienia się na 0 i w tym momencie konto VIP zostaje wyłączone.Ale zastanawia mnie czy to jest możliwe do realizowania ponieważ nie wiem czy to zadziała (Czy skrypt będzie działał w tle czyli nigdzie nie będzie otwarty).
Go to the top of the page
+Quote Post
thek
post 15.03.2010, 22:26:49
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Fatalnie zrealizowane zarządzanie kontami. Identyczne widziałem w pewnym produkcie komercyjnym, ktory mam niestety pod opieką i wiem, że bez całkowitej rezygnacji z niego w nieodległej przyszłości się nie obejdzie. Zarządzanie userami powinno być na podstawie zwykłego timestamp zrealizowane. Jak? Userzy, którzy wykupują konto VIP mają datę "ważności" ustawianą na przyszłość, czyli przykładowo czas obecny + 30 dni. Darmowi mają ją zawsze jako przeszłość. To w zupełności wystarczy by serwis "w czasie rzeczywistym" wiedział kiedy ktoś ma VIP, a kiedy nie. Wystarczy że zrobiśz zapytanie:
  1. SELECT * FROM users WHERE waznosc > curtime()

lub curdate(), zależy co tam chcesz smile.gif Nawet od biedy możesz dodać kolumne dodatkową o nazwie VIP i codziennie sobie CRONa odpalać co jakiś czas by zrobił zapytanie:
  1. UPDATE users SET VIP = 0 WHERE id IN (SELECT id FROM users WHERE VIP = 1 AND waznosc < curtime() )
by wyłapać tych, którym się skończył, okres VIPa smile.gif Wszystko idzie z automatu bez jakiejkolwiek Twojej ingerencji. Kombinowanie z ustawaniem licznika dni, czasu który coś odejmuje to jedno wielkie nieporozumienie.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 21:56