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:

$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!
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.
@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.
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!
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...
Er wordt naar de tijd van de server gekeken.
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..
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

Reageren