login  Naam:   Wachtwoord: 
Registreer je!
 Forum

tijd aftellen naar submit

Offline SomaQan - 14/07/2007 01:14
Avatar van SomaQanPHP beginner Ik maak gebruik van datatime en dan doe ik interval 'tijd' min
alleen wil ik als je straks op de pagina terug komt dat hij nog aan het aftellen is

dit bedoel ik

  1. <?php
  2. if(isset($_POST['start'])){
  3.  
  4. //we starten de interval eerst
  5. mysql_query("UPDATE gebruiker SET trainingtijd = DATE_ADD( NOW(), INTERVAL 30 MINUTE) WHERE `gebruiker_id` ='" .$id."'") or die(mysql_error());
  6. }
  7. else{
  8. //hier wil ik dan weten hoeveel min er nog te gaan zijn
  9. echo' Er is nog ... min tegaan';
  10. }
  11. ?>


Ik hoop dat jullie mij snappen

15 antwoorden

Gesponsorde links
Offline JBke - 14/07/2007 09:00 (laatste wijziging 14/07/2007 09:06)
Avatar van JBke PHP gevorderde je wil dus dat de teller blijft verderlopen ook al gaat de bezoeker weg van je site en later terugkomt, klopt dat??

dan zal je een tweede tijd moeten opslaan waaruit je kan afleiden hoe lang het geleden is dat de interval gestart werd en die tijd vergelijken met de huidige tijd, dit verschil trek je dan eerst van elkaar af om dan je teller verder te zetten. Denk niet dat er een mogelijkheid is om dit anders te doen daar je waarschijnlijk toch 1 tellertje per gebruiker wil hebben he??
Offline Scythen - 14/07/2007 09:02
Avatar van Scythen PHP gevorderde Ja, dat bedoelt ie.
Offline Anoniem - 14/07/2007 09:03
Avatar van Anoniem PHP gevorderde Dan zul je met cronjobs moeten gaan werken.
Offline JBke - 14/07/2007 09:09
Avatar van JBke PHP gevorderde
Orange schreef:
Dan zul je met cronjobs moeten gaan werken.


ik dacht dat cron oftewel het Linux commando crontab bedoeld was om scripts om bepaalde momenten automatisch te laten starten?? Kan je er ook een teller mee laten doorlopen?
Offline Scythen - 14/07/2007 09:16
Avatar van Scythen PHP gevorderde Is het niet het beste om met time() te werken om dat te doen?
Offline Anoniem - 14/07/2007 09:38 (laatste wijziging 14/07/2007 09:39)
Avatar van Anoniem PHP gevorderde
JBke schreef:
[..quote..]

ik dacht dat cron oftewel het Linux commando crontab bedoeld was om scripts om bepaalde momenten automatisch te laten starten?? Kan je er ook een teller mee laten doorlopen?

Ja, tenzij je zelf elke seconde/minuut een pagina wilt laden met een update-commando .
Offline smoos - 14/07/2007 12:36
Avatar van smoos PHP gevorderde Omg zeg alsjeblieft dat jullie allemaal een grapje maakte..
Offline Scythen - 14/07/2007 12:41
Avatar van Scythen PHP gevorderde Heb jij ook nog iets nuttigs te melden behalve dat?
Offline SomaQan - 14/07/2007 13:00
Avatar van SomaQan PHP beginner
JBke schreef:
je wil dus dat de teller blijft verderlopen ook al gaat de bezoeker weg van je site en later terugkomt, klopt dat??

dan zal je een tweede tijd moeten opslaan waaruit je kan afleiden hoe lang het geleden is dat de interval gestart werd en die tijd vergelijken met de huidige tijd, dit verschil trek je dan eerst van elkaar af om dan je teller verder te zetten. Denk niet dat er een mogelijkheid is om dit anders te doen daar je waarschijnlijk toch 1 tellertje per gebruiker wil hebben he??


Oke ik sla 30 min op in de database hoe kan dan die tijd aftellen van de datatime die ook opgeslagen is.
Offline smoos - 14/07/2007 15:35 (laatste wijziging 14/07/2007 16:54)
Avatar van smoos PHP gevorderde
Scythen schreef:
Heb jij ook nog iets nuttigs te melden behalve dat?
Nee jouw reacties zijn nuttig.

Wat je kan doen is dit:
  1. <?php
  2.  
  3. $sql = "
  4. SELECT
  5. UNIX_TIMESTAMP() - UNIX_TIMESTAMP(trainingtijd) AS tijd
  6. FROM
  7. gebruiker
  8. WHERE
  9. gebruiker_id = '" .$id."'"; // << Wees zeker van je data
  10. if(!$result = mysql_query($sql)){
  11. echo 'Omg error: '.mysql_error();
  12. exit();
  13. }
  14. else {
  15.  
  16. if(mysql_num_rows($result) == 1){
  17.  
  18. $assoc = mysql_fetch_assoc($result);
  19.  
  20. if($assoc['tijd'] > 0){
  21.  
  22. echo 'Er is nog '.ceil($assoc['tijd']/60).' min tegaan';
  23. }
  24. else {
  25.  
  26. echo 'Omg de tijd is al om!';
  27. }
  28. }
  29. }
  30.  
  31. ?>
Het is maar een voorbeeld en zoals gewoonlijk niet getest
Offline Stijn - 14/07/2007 18:44 (laatste wijziging 14/07/2007 18:49)
Avatar van Stijn PHP expert Waarom moeilijk doen? PHP.net: setcookie

  1. setcookie('tijd' , time()+60*30 , time()+60*60);


En als men op een pagina komt van je site:
  1. if( isset( $_COOKIE['tijd'] ) ) {
  2. echo date('i', $_COOKIE['tijd'] - time() ) . ' minuten nog.';
  3. }
Of een beetje combineren met je Mysql tabel.
Offline SomaQan - 14/07/2007 20:45
Avatar van SomaQan PHP beginner Bedankt iedereen ik ben er uit ik heb de oplossing van Stijn gebruikt en hij werkt perfect !
Offline smoos - 14/07/2007 21:29
Avatar van smoos PHP gevorderde Is ook echt de veiligste oplossing 
Offline SilVeX - 15/07/2007 02:10
Avatar van SilVeX HTML beginner Is het dan niet zo dat je gewoon die cookie kan weggooien?
Offline smoos - 15/07/2007 11:05
Avatar van smoos PHP gevorderde
SilVeX schreef:
Is het dan niet zo dat je gewoon die cookie kan weggooien?
Ja dat is zo, het was ook sacasties bedoelt
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s