Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy user był wczoraj...? problem
szakallt
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.07.2011

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


Witam tworzę grę przeglądarkową i nie wiem jak sprawdzić czy użytkownik był wczoraj zalogowany i wykonał odpowiednią akcję.
Chodzi mi o to, że robie zdobywanie doswiadczenia poprzez powiedzmy, że kursy, które trwają kilka dni i ich zdanie/ocena końcowa jest uzależniona od frekfencji.
Nie chcę robić tego w cron i wysyłać codziennie sprawdzenie typu " if gracz obecnie robi kurs && byl dzis i kliknął idz na zajęcia (że obecnie jest na zajęciach) " i wtedy by dodawalo mu ze ma dzien zaliczony...
Chcę jakos przechowac datę w bazie tak aby gracz po kliknięciu idz na zajęcia mial sprawdzany odstęp od ostatniego bycia w szkole i jesli rożnica jest większa niz 24h to zeby mu dawalo 1 nieobecność.

Moje pytanie:
Jak w bazie zapisać datę/czas, tak aby moc sprawdzić to czy był ostatnio na zajęciach wtedy co powinien?

Trochę pokręciłem ale mam nadzieję, że dobrze wytłumaczyłem
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Jeśli dobrze rozumiem, to najprostszym rozwiązaniem jest trzymanie w bazie daty 'ostatniej obecności na zajęciach'. I dalej przecież nie ma najmniejszego problemu, by porównać datę z bazy z obecną, odjąć jedno od drugiego i sprawdzić czy jest większe od 24h.

Załóżmy, że ktoś klika 'idź na zajęcia'. Więc teraz sprawdzasz kiedy był ostatnio.

  1. if ($obecny_czas - $ostatnie_zajecia > 24) {
  2.  
  3. // dodajesz nieobecność
  4.  
  5. }
  6. // zapisujesz obecny czas jako nową wartość kolumny ostatnie_zajecia


Jeśli istnieje konieczność, możesz też dodatkowo sprawdzać ile dni nie był na tych 'zajęciach' dzieląc (z zaokrągleniem floor) różnicę przez 24 i dodać odpowiednią liczbę nieobecności.

Ten post edytował b4rt3kk 2.12.2012, 18:44:40


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
szakallt
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.07.2011

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


Cytat(b4rt3kk @ 2.12.2012, 18:42:40 ) *
Jeśli dobrze rozumiem, to najprostszym rozwiązaniem jest trzymanie w bazie daty 'ostatniej obecności na zajęciach'. I dalej przecież nie ma najmniejszego problemu, by porównać datę z bazy z obecną, odjąć jedno od drugiego i sprawdzić czy jest większe od 24h.

Załóżmy, że ktoś klika 'idź na zajęcia'. Więc teraz sprawdzasz kiedy był ostatnio.

  1. if ($obecny_czas - $ostatnie_zajecia > 24) {
  2.  
  3. // dodajesz nieobecność
  4.  
  5. }
  6. // zapisujesz obecny czas jako nową wartość kolumny ostatnie_zajecia


Jeśli istnieje konieczność, możesz też dodatkowo sprawdzać ile dni nie był na tych 'zajęciach' dzieląc (z zaokrągleniem floor) różnicę przez 24 i dodać odpowiednią liczbę nieobecności.


tak to rozumiem ale w jakiej formie przechowywać ten czas w bazie aby móc tego typu rozwiązanie zastosować?
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Obojętnie jakiej, przecież istnieje funkcja time, date, strtotime, możesz sobie później dowolnie sformatować, tak by dokonać obliczeń.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
szakallt
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.07.2011

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


Cytat(b4rt3kk @ 2.12.2012, 18:54:59 ) *
Obojętnie jakiej, przecież istnieje funkcja time, date, strtotime, możesz sobie później dowolnie sformatować, tak by dokonać obliczeń.

ok pokombinuje jak coś wymyślę dam edit
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 Aktualny czas: 20.08.2025 - 12:59