login  Naam:   Wachtwoord: 
Registreer je!
 Forum

php/mysql countdown

Offline sdijkman1 - 15/09/2007 21:02
Avatar van sdijkman1Nieuw lid hallo, ik ben bezig met een simpel mysql spelletje, maar ik zoek een script, en kan het nergens vinden, misschien kan iemand van jullie me helpen? 

het gaat om het volgende:
ik heb bijvoorbeeld een fabriek, die je moet upgraden. Dit kost echter tijd om dat te doen, hij is bijvoorbeeld 5minuten bezig voor een upgrade, en tot hij klaar is moet je wachten.
Ook als je naar andere pagina's gaat moet hij gewoon verder blijven gaan met upgraden vanhet gebouw.

Ik heb op verschillende termen gezocht, maar kan helemaal niks vinden. Ik hoop dat jullie kunnen helpen.

Alvast bedankt 

8 antwoorden

Gesponsorde links
Offline Babak - 15/09/2007 21:13
Avatar van Babak MySQL interesse Gewoon een tijd in de database zetten, kijken of die tijd al voorbij is met

$tijdover = $tijdvandatabase - time();

en dan gmdate("H:i:s",$tijdover);

zoiets zou moeten werken.
Offline Stijn - 15/09/2007 21:14
Avatar van Stijn PHP expert Je kan met sessies werken. Even een simpel voorbeeldje:

  1. <?php
  2. mysql_query("UPDATE gebouwen SET fabriek+=1 WHERE eigenaar=$user");
  3. $_SESSION['build_done'] = time()+60*5;
  4. ?>

Nu is het zo dat je moet controleren of de build_done tijd al gedaan is of nog bezig is. Ook weer een simpel voorbeeldje

  1. <?php
  2. $build_time = $_SESSION['build_done'] - time();
  3. if( $build_time > 0 ) { //nog bezig
  4. echo "je kan niets doen, je moet wachten tot je fabriek gebouwd is";
  5. }


Snap je? Sessies werkt efficient. Wat je wel kan hebben is dat de gebruiker zijn browser sluit en opnieuw erop gaat, dan hoeft die geen 5 minuten te wachten. Dus een mysql oplossing is dan nog de beste.
Offline Babak - 15/09/2007 21:35
Avatar van Babak MySQL interesse Zoals ik het zeg stijn, is dat niet een betere manier?
Offline Ibrahim - 15/09/2007 23:47
Avatar van Ibrahim PHP expert maak een extra veld aan genaamd "tijd_fabriek" in je leden tabel

daar zet je NOW() + 5 min. in, op de pagina zelf kijk je of die tijd al verstreken is, zo ja, dan mag ie weer upgraden ofzo, zo nee, dan moet ie nog wachten
Offline sdijkman1 - 16/09/2007 18:15 (laatste wijziging 16/09/2007 20:50)
Avatar van sdijkman1 Nieuw lid bedankt ik heb nu dit

  1. <? $time = time()+60*5;
  2. $update = mysql_query("Update userdata set goldmine_time = '$time' where username = '$user[username]'"); ?>

en dan staat dit bij de link
  1. <? $tijdover = $userdata[goldmine_time] - time();
  2. $tijdover = gmdate("H:i:s",$tijdover);?>
  3.  
  4. <? echo"$tijdover"; ?>



laatste vraag:
hoe kan je mysql per uur iets automatisch laten wijzigen? 
Offline Babak - 16/09/2007 20:54
Avatar van Babak MySQL interesse Cronjobs, via SHH. Moet via je hosting kunnen.
Offline marten - 16/09/2007 20:54
Avatar van marten Beheerder cronjobs (linux) of shedule tasks in windows
Offline Ibrahim - 17/09/2007 17:23
Avatar van Ibrahim PHP expert
sdijkman1 schreef:
bedankt ik heb nu dit

[..code..]
en dan staat dit bij de link
[..code..]


laatste vraag:
hoe kan je mysql per uur iets automatisch laten wijzigen? 


wrm gebruik je nou PHP voor iets dat MySQL perfect zelf kan ? zoek maar naar DATE functies op deze site en op mysql.com
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s