Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Automatyczne powiększanie rekordu
Forum PHP.pl > Forum > Bazy danych > MySQL
Ethel
Witam, potrzebuje informacji/wskazówek jak napisać skrypt który będzie mi co 10 minut powiększał w wszystkich rekordach pewne pole o 1.
Skobi
Za pomocą bazy MySql nie uruchomisz skryptu co jakiś odstęp czasu, ale możesz napisać skrypt w np. php ktory będzie aktualizował baze.
Poszukaj pod hasłem cron było wiele razy na tym forum.
Ethel
Poczytałem i doszedłem do wniosku że skrypt ten może być uruchamiany jedynie przez administratora servera. Natomiast problemem jest to iż ja administratorem nie jestem, a jedynie urzytkowinkiem. Czy jest inne rozwiązanie ?
Skobi
Hm, mam pomysł na jedno rozwiązanie, ale jest ono gorsze od crona. Rozwiązanie to:

Możesz taki skrypt zaimplementować u siebie na stronie i uruchamiać go jako pierwszy skrypt w aplikacji. Mógłbyś trzymać gdzies w bazie kiedy ostatni raz byl uruchamiany. Obliczyć różnicę minut od ostatniego uruchomienia i zaktualizować bazę. Oczywiście trzeba to dokładnie przemyśleć, ale myślę, że da się zrobić. Oczywiście uważam, że jest to rozwiązanie toporne, ale skoro nie ma innego wyjścia, no chyba, że takiego nie znam.
mike
Cytat(Skobi @ 2005-07-23 22:50:50)
Możesz taki skrypt zaimplementować u siebie na stronie i uruchamiać go jako pierwszy skrypt w aplikacji.

A jeżeli na Jego stronę nikt nie wejdzie przez godzinę (przez godzie się nie wykona) questionmark.gif To co questionmark.gif

Są dwa wyjścia:
1. Dostęp do crona bezpośredni na serwerze "zainteresowanym" i odpalać skrypt wykonujący operacje bazodanowe co 10 min.

2. Dostęp do crona na innym serwerze, który wykona skrypt łączący sie ze skryptem na serwerze A i go wykonującym.


Tak czy inaczej potrzebujesz skryptu niezawodnie odpalanego w równych ostępach czasu, co oznacza crona, nieważne gdzie.
Skobi
Cytat
mam pomysł na jedno rozwiązanie, ale jest ono gorsze od crona


dlatego pisalem, że jest to gorsze rozwiązanie, a co do

Cytat
A jeżeli na Jego stronę nikt nie wejdzie przez godzinę (przez godzie się nie wykona) questionmark.gif To co questionmark.gif


to piszę żeby zapisywać w bazie kiedy się ostatni raż wykonał. Jeżeli zapis w bazie wskazuje na godzinę:

2005-07-23 23:00, a jest teraz 2005-07-24 00:09

to zwiększa wybrane rekordy o 6.
Spike
Uważam że rozwiązanie Skobi-ego było by dobre w tym przypadku gdyż brak jest crona - umieszczenie tego kodu zaproponowanego przez Skobiego znajdowało by sie gdzieś przed wyświetleniem tej informacji dla klienta i już klient widziałby zaktualizowany rekord
dag
Zalezy dlaczego chcesz powiekszac regularnie o dana wartosc rekord. Jesli maja to byc dane dla odwiedzajacych witryne, to nawet w przypadku jesli nikt nie wchodzil na strone, to nie ma potrzeby aktualizowac dane (bo i tak Ci sie nie uda bez narzedzi typu CRON). Natomiast gdy wejdzie jakis user mozesz obliczyc ile czasu uplynelo od ostatniej aktualizacji i wykonac tyle powiekszen ile uplynelo czasu/cykli.
Ethel
W takim razie opowiem moją sytuacje: (tylko sie nie śmiejcie że taki lamus jak ja sie bierze za takie rzeczy tongue.gif )

Mam zamiar napisać prostą gierke internetową, strategie turową (gracz sobie buduje budynki i wykonuje inne opcje następnie klika na przeliczenie tury i sie zmiany ktorych dokonał aktualizują w bazie ... może ktoś grał w gre typu RedDragon to będzie wiedział o co chodzi) i chciałbym aby co 10 minut była dodawana tura wszystkim graczą.
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.