Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] dodawanie wartosci
qwe
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.02.2009

Ostrzeżenie: (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.

  1. $wyniki = mysql_fetch_array(mysql_query("SELECT czas, stan FROM users WHERE user='$user'"));
  2.  
  3. $time = mktime();
  4. $ostatnia_aktualizacja = $time + 120;
  5.  
  6. if ($wyniki ['stan'] > 0 ) {
  7.  
  8. if($wynik['czas']> $time){
  9. $pozostalo = $wynik['czas'] - $time;
  10. echo "do załadowania punktów pozostało:";
  11. echo date('00:i:s',$pozostalo) ;
  12. }
  13. else
  14. {mysql_query("UPDATE users SET czas = '$ostatnia_aktualizacja' , stan = stan - 2 WHERE user='$user' ");}
  15. }


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

Ten post edytował qwe 25.02.2010, 18:17:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
thek
post
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




W tego typu grach NIE DZIAŁA to tak jak myślisz smile.gif Bo by serwery pozdychały biggrin.gif To jest robione inaczej... Jest oznaczenie czasu ostatniej operacji. Sprawdzana jest ona i synchronizowana przy każdym przeładowaniu strony. Dlatego masz gdzieś cron i inne tego typu wynalazki. Patrzysz na czas obecny, czas zapisany w znaczniku i według niego obliczasz wszystko, jednocześnie aktualizując ów znacznik czasu. Dlatego tak dzialający skrypt jest niewrażliwy na wylaczenie przeglądarki, wylogowanie itp. On aktualizuje tylko i wyłącznie dane pomiędzy kolejnymi przeładowaniami strony smile.gif W czasie pomiedzy nimi nie robi nic. To, że Tobie może się coś pokazywać zmieniającego na bieżąco jest efektem działania JavaScriptu lokalnie najprawdopodobniej i nic więcej smile.gif


--------------------
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 Aktualny czas: 21.08.2025 - 03:39