Auto zwiększanie rekordu w bazie mysql jak zrobić?

Jak zrobić żeby rekord w bazie sam się zwiększał??

Jak ktoś wie to niech poda przykład albo link do przykładu.

Bardzo proszę

Słowo kluczowe: auto_increment :slight_smile:

A to wiem ale mi chodzi ze mam w bazie rekord np 100 i chcę żeby co 10 min dodawało 10 o to mi chodzi.

Jak wiesz jak to zrobić to napisz przykład

Zależy co chcesz z tym zrobić. Najprościej skrypt php uruchamiany w harmonogramie. Albo zapisujesz dokładną datę rozpoczęcia, i na podstawie obecnej dokładnej daty obliczasz ile tych pkt ci się dodało.

Bardzo dobry pomysł tylko jak to zrobić?? Po to napisałem żeby się dowiedzieć co powinno byś w tym skrypcie i jak go uruchomić w harmonogramie.

Jak wiesz to podaj jakiś przykład albo link do manuala jeśli taki jest.

Twój hosting musi udostępniać np. crona. Jeśli tak nie ma nie da rady. A co do skryptu: pobierasz, zwiększasz i zapisujesz co w tym trudnego ? A ustawienia crona powinieneś mieć gdzieś w ustawieniach hostingu.

Czyli żeby to zrobić trzeba mieć CRON tak?? inaczej nie da rady??

Jakie są dobre serwery z CRONem/php/mysql pod gre www???

Na twoim miejscu liczyłbym punkty wg daty jest to bardziej praktyczne niż odpalanie skryptu co 10min.

Czyli jak liczyć punkty według daty??

Jak w bazie zapisze date to i tak trzeba powtarzać skrypt żeby się wykonało zwiększenie.

Czy jakoś inaczej to działa??

Podaj jakiś przykład.

Nie, w bazie zapisujesz datę rozpoczęcia naliczania i tylko to. A później jeśli user się loguje (chce sprawdzić pkt), to sprawdzasz odejmując obecną od tej rozpoczęcia, i dzielisz to tak aby uzyskać określony wynik. Np masz 3dni to dzielisz go na 24(godziny), potem na 6 (by mieć ilość 10min). I wtedy mnożysz razy pkt. I masz wynik jaki potrzebujesz bez obciążenia serwera.

To dzięki za pomoc.

A ja już myślałem ze to musowo tym CRONem.

Czyli tylko czas w bazie zapisuje a ten cas musi być zapisany podczas rejestracji tak?? bo jak zapisze się potem to nie doda tych punktów ktore się by dodały do zapisania czasu. Dobrze myślę??

Dokładną datę (m,d,y,h,i,s) zapisujesz w momencie od którego chcesz mieć liczone te twoje pkt.

To funkcja time() jest od czasu to ja mam zapisać?? czy jest jakaś inna??

date(), najlepiej z wszystkimi argumentami liczbowymi.

date() jest tu w zupełności nie potrzebne.

Po pierwsze potrzebna jest baza MySQL z tabelą, oto przykładowa (bez zbędnych danych).

CREATE TABLE `user` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `regtime` int(11) NOT NULL,

  PRIMARY KEY (`id`)

)

Później dodajemy gracza:

INSERT INTO `user` (`id`,`regtime`) VALUE (NULL,UNIX_TIMESTAMP())

Zliczaniem punktów również może zająć się baza danych:

SELECT FLOOR((UNIX_TIMESTAMP()-`regtime` )/60) FROM `user` WHERE `id`=1 LIMIT 1

60 to ilość sekund po jakim doliczany jest jeden punkt.

Ok to dzięki za pomoc spróbuje tak jak napisałeś.