Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy user był wczoraj...? problem
Forum PHP.pl > Forum > PHP
szakallt
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
b4rt3kk
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.
szakallt
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ć?
b4rt3kk
Obojętnie jakiej, przecież istnieje funkcja time, date, strtotime, możesz sobie później dowolnie sformatować, tak by dokonać obliczeń.
szakallt
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
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.