[php] aktualizacja danych po czasie

0

Witam mam pewien problem otóż mam kod, który co 2 minuty odejmuje od rekordu stan - 2 jednostki jeśli stan jest większy niż 0. Kod umieszczony jest na stronie, która jest includowana z każdym odświeżeniem.

   
      $wyniki = mysql_fetch_array(mysql_query("SELECT czas, stan FROM users WHERE user='$user'"));
   
        
      $time = mktime();
  
      $ostatnia_aktualizacja = $time + 120;
      
   
      if ($wyniki['stan'] > 0 ) {
        
  
      if($wynik['czas']> $time){
  
      $pozostalo = $wynik['czas'] - $time;

      echo "do załadowania punktów pozostało:";

      echo date('00:i:s',$pozostalo) ;

      }

      else

      {mysql_query("UPDATE users SET czas = '$ostatnia_aktualizacja' , stan = stan - 2 WHERE user='$user' ");}

      }

Nie wiem jak zrobić aby odjęło odpowiednią ilość w przypadku gdy gracz nie jest zalogowany na stronie.
Chodzi mi o coś podobnego np do gry the crims gdzie co 4 minuty (nie wiem dokładnie) rośnie energia nawet gdy gracza nie ma w grze to i tak po przyjściu i sprawdzeniu czasu dodaje mu odpowiednią ilość tej energi.
Nie chce korzystać z crona.

Proszę o pomoc

0

Czy tą ilość jednostek widzi tylko dany user czy inni też?

0

tylko user

0

Zapisuj czas ostatniej akcji usera na stronie. Po ponownym zalogowaniu od aktualnego czasu odejmij ten zapisany i na tej podstawie przelicz ile jednostek powinno mu się odjąć.

0

a nie lepiej cronem ?
tylko poszlo by to wtedy masowo :)

0
maxi12 napisał(a)

Nie chce korzystać z crona.

0

mógłbym zrobić w cronie (szybciej i łatwiejszy kod) tylko, że parę osób mi powiedziało że jest to nie optymalne (nie wiem czy to prawda może ktoś się wypowie)

W cronie musiałbym zrobić pętlę po wszystkich rekordach tak ??

bo sam zapis do bazy

$kasuj = mysql_query("UPDATE user SET stan=stan - 2 WHERE stan > 0");

i crona ustawić co 2 min

0

@maxi12 czy coś jest optymalne czy nie zależy od danej sytuacji.
To co ty chcesz zrobić da się zrobić w sposób który opisałem wyżej i nie ma sensu zaprzęgać crona.

1 użytkowników online, w tym zalogowanych: 0, gości: 1