tijd functie (moeilijk)
David Festen
26/12/2005 13:04:00ok, ik probeer dus met PHP en mySQL en code te maken die bijv. 10 optelt elke 5 seconde bij een mySQL record.
Nu het moeilijke gedeelte: dat moet ook gebeuren als de gebruiker offline gaat, dan moet er gewoon worden doorgeteld! ik heb het zelf nog niet voor elkaar gekregen
het is voor een text-based MMORPG, dus het gaat er eigenlijk om dat er "inkomens" binnenkomen, ook als de gebruiker offline is
Nu het moeilijke gedeelte: dat moet ook gebeuren als de gebruiker offline gaat, dan moet er gewoon worden doorgeteld! ik heb het zelf nog niet voor elkaar gekregen
het is voor een text-based MMORPG, dus het gaat er eigenlijk om dat er "inkomens" binnenkomen, ook als de gebruiker offline is
PHP hulp
23/12/2024 05:03:27Arjan Kapteijn
26/12/2005 13:16:00Iedere 5 seconden ergens 10 bij optellen is _zeer_ inefficient. Moet je nagaan als je zomenteen 1000 gebruikers hebt... dat betekend dus 1000*12 extra querys per minuut!
Makkelijkere oplossing:
Bij het uitloggen sla je de tijd op, zodra de gebruiker inlogt kijk je naar de tijd die tussen het in en uitloggen zit, en dan reken je uit hoeveel 'punten' dat is.
Makkelijkere oplossing:
Bij het uitloggen sla je de tijd op, zodra de gebruiker inlogt kijk je naar de tijd die tussen het in en uitloggen zit, en dan reken je uit hoeveel 'punten' dat is.
David Festen
27/12/2005 11:28:00dat is ook niet egt de bedoeling, idd is dat erg ineffiecient maar het moet wel doortellen als de gebruiker bijvoorbeeld een week niet online gaat.
t kan ook 1 keer per dag, maar t was maar een voorbeeld ;)
wat je nu zegt heb ik al staan.
t kan ook 1 keer per dag, maar t was maar een voorbeeld ;)
wat je nu zegt heb ik al staan.
Frank -
27/12/2005 11:37:00Waarom doortellen? Je hebt het gegeven pas op een bepaald moment nodig, dus waarom niet op dat moment gaan berekenen wat de waarde is? Dat scheelt je duizenden en nog eens duizenden queries.
Je slaat het tijdstip op wanneer een gegeven voor het laatst is berekend en je weet het tijdstip van nu. Het verschil kun je dan eenvoudig berekenen en op basis van de uitkomst kun je dan weer verder rekenen.
Het heeft geen enkele zin om iets te gaan berekenen en in de database zetten wanneer niemand er iets mee doet.
Edit: typo
Je slaat het tijdstip op wanneer een gegeven voor het laatst is berekend en je weet het tijdstip van nu. Het verschil kun je dan eenvoudig berekenen en op basis van de uitkomst kun je dan weer verder rekenen.
Het heeft geen enkele zin om iets te gaan berekenen en in de database zetten wanneer niemand er iets mee doet.
Edit: typo
Gewijzigd op 27/12/2005 12:20:00 door Frank -
David Festen
27/12/2005 12:15:00Daar kan ik wel wat mee, dus dan ga ik het gegeven pas berekenen zodra iemand het gegeven opvraagd. Dat scheelt idd heel veel traffic.