Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czas budowy
Forum PHP.pl > Forum > PHP
michal041202
Witam wszystkich!
Potrzebuję pomocy, ponieważ mam mały (tzn. duży) biggrin.gif problem. Otóż chcę zrobic coś takiego, że w bazie danych (MySQL) jest zapisany pewna liczba i po kliknięciu na przycisk ma rozpocząc się odliczanie i po skończeniu się zadanego czasu aby ta liczba zwiększyła się o jeden. Chciałbym także, aby w tym czasie przeglądarka nie musiała byc włączona i to odliczanie odbywało się jakby po stronie serwera. Proszę o szybką pomoc.

--
Pozdrawiam
michal041202
!*!
Wysyłasz dane przez formularz do bazy/pliku, ustawiasz cron na serwerze aby sprawdzał czy rekord/wartość pliku istnieje np. co kilka minut, jeśli istnieje pobierasz czas rozpoczęcia i na jego podstawie przez cron sprawdzasz czy od tego momentu upłynęło tyle ile potrzebujesz, jak tak robisz update.
Kshyhoo
Codziennie zakładasz wątek. Nie umiesz nic, zacznij od kursy PHP/MySQL. Użyj Google do znalezienia tematu a PROBLEMAMI z KODEM wracaj na Forum.
gra+via+budowanie
Damonsson
Niepotrzebny Ci żaden Cron.

Źródło: Otwarcie podstrony na której, można zobaczyć poziom.
Akcja:
- Pobranie z MySQL czasu do końca budowy
- Zasymulowanie i wyświetlenie w JavaScript odliczania czasu do końca budowy
- Po dojściu licznika czasu w JS do 0, odpytanie bazy danych, czy rzeczywiście czas dobiegł końca (nigdy nie ufaj danym od użytkownika tj. JavaScript).
- Jeśli czas dobiegł końca, update kolumny w MySQL

Źródło: Kliknięcie budowy nowego poziomu
Akcja:
- Dodanie czasu zakończenia budowy do MySQL
!*!
@Damonsson - zamykam przeglądarkę i Twój sposób się zawalił ;)
Damonsson
Otwieram przeglądarkę i mój sposób nadal żyje.

Po co słoniowi w afryce wiedzieć, czy na mazurach jest woda w jeziorze? Jak przybiegnie do Polski to refresh horyzontu przed jego pokazaniem, pokaże mu czy jest to jezioro czy go nie ma wink.gif


Ale dobrze, że to napisałeś, bo prawda, zapomniałem dodać czegoś ważnego:

Nie: Otwarcie podstrony na której, można zobaczyć poziom. A: Jakakolwiek akcja, na którą ma wpływ poziom budynku.
!*!
Właśnie, musisz otworzyć przeglądarkę ponownie, aby to sprawdzić, czyli jeszcze raz odpytujesz bazę. Przy grach się to nie sprawdza, ponieważ warto wykonywać zadania wtedy kiedy są potrzebne, a nie masowo sprawdzać wszytko przy logowaniu. Dodatkowo wyłączę JS i pomysł leży, zbuduję pomiędzy logowaniem a odpytaniem serwera 1k budynków i pomysł leży.
Damonsson
Żeby zrobić to realnie, CRON musiałby działać co 1 sekundę. Wyobrażasz sobie to przy 100.000 użytkowników? OGAME, działa wg mojej wersji, nie znam większej gry tego typu.

CRON w grach sprawdza się gdy, trzeba wykonać bardzo zasobożerne operacje. Np liczenie punktów, miliony operacji arytmetycznych dla wszystkich użytkowników. Wtedy odpala się CRONa np. o 4 w nocy jak wszyscy śpią i mieli się bazę danych.
!*!
To już jest inna historia. Cron odpalany co 1s przy 100k? To jeszcze nie jest tak źle. Dziś i tak robi się tego typu rzeczy przez sockety, co też jest wyjściem.
Damonsson
CRON ze sprawdzaniem praktycznie wszystkie co możliwe, dziesiątki operacji dla jednego gracze: ataki/budynki/surowce. To jest zabójstwo. Po za tym zawsze jest ryzyko, niewykonania się CRONa. Nie ma najmniejszej możliwości stosowania CRONa do takich zadań. Dla zabawy dla 1000 graczy to jeszcze może jakoś przejdzie. Albo jak punkty się nie policzą, to ktoś odpali CRONa jeszcze raz i będzie później aktualizacja tylko, nic wielkiego się nie stanie. A niech CRON dla tych ważnych operacji zawiesi się na 3 sekundy w ciągu 24h, gdzie jakieś ataki są wyliczane co do 1 sekundy, to co? Backup?

Tak samo było z tymi aukcjami za10groszy.pl itp.

No tak Sockety, albo obsługa zdarzeń w innym języku. Ale to już chyba nie na możliwości autora.
com
Sockety w php też masz, a Ogame to trochę już historia, wiec nie bazowałbym na tym bo wtedy nie mieli zbyt dużego pola do popisu, a oba sposoby tzn cron i js nie są tu idealne ...
Damonsson
albo - takie magiczne słówko wink.gif

Zgodzę się, nie jest idealne, ani to, ani to. Czy są takie, Sockety? Chętnie się dowiem, sam nie wiem.
com
ok masz rację źle to przeczytałem wink.gif
Cytat
Czy są takie, Sockety? Chętnie się dowiem, sam nie wiem.


hmm?
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.