timer in mysql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rob

Rob

17/06/2006 20:17:00
Quote Anchor link
Hey allemaal!

Is er een of ander script, om bijvoorbeeld elke minuut iets in een mysql veld te scrijven, zonder dat ik dat met de hand moet doen?
Ik maak namelijk een text-game, en daarin heb je een ijzermijn, en dan wil ik bijvoorbeeld dat per minuut deze code word uitgevoerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$ijzererbij=ijzermijnlevel*5

en dat hij dat dan bij elke gebruiker uitvoerd? zonder dat je ingelogd hoeft te zijn? het KAN wel, want dat gebruiken ze ook bij O-GAME. Kan iemand me helpen?

Alvast bedankt!
 
PHP hulp

PHP hulp

07/01/2025 18:27:34
 
Robert Deiman

Robert Deiman

17/06/2006 20:20:00
Quote Anchor link
Google eens naar cronjobs, en probeer eens uit te zoeken of je daar de mogelijkheid toe hebt, zo niet.. dan moet je je programma laten rekenen als ze weer online komen.. (of wanneer ze klikken is nog beter)
zet de tijd van klikken dan in de database en als ze inloggen vergelijk je het tijdsverschil, en 5*de tijd / 5, berekend dan hoeveel ijzer ze erbij hebben gehad... maar dit is alleen nodig wanneer je geen cronjobs hebt..
 
Rob

Rob

17/06/2006 20:21:00
Quote Anchor link
Ik snap dat laatste niet helemaal, maar ik google wel ff ;)
 
Rob

Rob

17/06/2006 20:26:00
Quote Anchor link
Hoe werken die cronjobs precies? en hoe kan ik ze in mn server zetten? Ik heb php 5 ondersteuning, en heb mysql met phpmyadmin 2.6.3... Mijn site is dukesoft.nl.. Hoe kan ik dat alles doen?
 
Robert Deiman

Robert Deiman

17/06/2006 20:28:00
Quote Anchor link
Ok, voorbeeld dan maar..

Ik klik voor de laatste keer om 11:30. Daarna is mijn eerstvolgende klik (maakt niet uit of ik online of offline ben geweest) om 12:10, dat is 40 minuten, oftewel, 8 keer 5 minuten, waardoor ik er 40 ijzer bij krijg..
Het is te doen zo, maarjah.. als je dan veel klikt, moet ik nog een oplossing zoeken.. :S

Iemand anders die me ff kan helpen? Ik loop een beetje vast, maar ik weet ook zeker dat ik zoiets laatst een keer voorbij heb zien komen.
 
Robert Deiman

Robert Deiman

17/06/2006 20:29:00
Quote Anchor link
@Rob

Host je je site zelf? Of heb je een host? Zo ja welke host?
 
Rob

Rob

17/06/2006 20:31:00
Quote Anchor link
Ik heb een host, en dat is hosting2go. (www.hosting2go.nl) ik heb daarbij toegang tot plesk.
 
Rob

Rob

17/06/2006 20:31:00
Quote Anchor link
Maar ik maak mijn site op een offline PC, met easyphp als webserver.
 
Rob

Rob

17/06/2006 20:32:00
Quote Anchor link
Ik kijk wel ff bij de scripts voor cronjobs
 
Rob

Rob

17/06/2006 20:32:00
Quote Anchor link
Nop.. nix :(
 
Rob

Rob

17/06/2006 20:36:00
Quote Anchor link
Ik moet gaan... :( later
 
Robert Deiman

Robert Deiman

17/06/2006 20:39:00
Quote Anchor link
Mooi, als je inlogt, en je naar "servertaken" gaat, heb je daar iets van crontabs staan, daar kan je een script plaatsen en een tijdslimiet opstellen wanneer het script uitgevoerd moet worden.
 
Frank -

Frank -

17/06/2006 23:29:00
Quote Anchor link
@Robert: Waarom ben je zo'n fan van cronjobs? Die heb je voor dit soort zaken helemaal niet nodig. Als iemand niet ingelogd is, hoeft hij ook niet te weten wat zijn hoeveelheid ijzer is.

Oplossing: Zet in de tabel waar je de hoeveelheid ijzer opslaat, ook een DATETIME. Hierin zet je de datum en tijd waarop dit record is bijgewerkt. Iedere keer dat iemand inlogt, naar een nieuwe pagina gaat of een page-refresh doet, kijk je (m.b.v. de handige datum- en tijdfuncties van MySQL) hoeveel tijd er is verstreken sinds de vorige update. Voor iedere minuut die is verstreken voeg je vervolgens een X-hoeveelheid ijzer toe.

Deze oplossing scheelt je een gigantische hoeveelheid queries die op de database worden losgelaten. I.p.v. 1440 (60x24) queries per speler per dag, zul je er slechts enige tientallen tot honderden per dag hebben. En dat niet eens iedere dag, lang niet iedereen zal iedere dag spelen. Het is zinloos om een update uit te voeren wanneer niemand iets met deze update doet.
 
Rob

Rob

18/06/2006 17:42:00
Quote Anchor link
Cool dankjulliewel :D (met name frank)

Ik zal eens kijken! Dat gebruiken ze volgensmij ook bij o-game... maar dan elke 10 seconden.. mja, dankjewel!
 
Rob

Rob

18/06/2006 17:43:00
Quote Anchor link
Maar... word dan met dat datetime naar de tijd en datum op de SERVER gekeken of op de PC van de speler zelf? want er zijn wel PC's waarmee de CPU klok kapot is...
 
Jan Koehoorn

Jan Koehoorn

18/06/2006 18:18:00
Quote Anchor link
Er wordt naar de tijd van de server gekeken.
 
Robert Deiman

Robert Deiman

18/06/2006 21:05:00
Quote Anchor link
Ok.. maar nu ff wat anders he:

Stel ik ben heel erg verslaafd aan het spel en ik doe 2 clicks per minuut.. hoe kan je dan aangeven hoeveel erbij komt? Je zal ook een bepaalde tijd moeten hebben waarmee je vergelijkt, een vaste tijd, dus niet alleen van je clicks!!


verder nog een punt:

Ik ben geen fan van cronjobs, de vraag was alleen over een TIMER in mysql.. en daar gaf ik antwoord op, voor een beginnend programmeur is het ook nog eens een gemakkelijke oplossing..
 
Remco van Arkelen

Remco van Arkelen

18/06/2006 22:22:00
Quote Anchor link
Overigens komen er in de nieuwe versie van MySQL wel "events" welke op een bepaald tijdstip automatisch kunnen worden uitgevoerd...dit druist echter tegen veel database-principes in en dient slechts voor specifieke taken gebruikt te worden, dus niet zoiets als Rob hier vraagt.

Zie hier
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.