login  Naam:   Wachtwoord: 
Registreer je!
 Forum

automatisch updaten

Offline kenzo - 17/10/2006 21:26
Avatar van kenzoPHP beginner Hallo,

Ik moet voor een site een script maken waar iemand iets bewerkt (in dit geval of een auditie doorgaat of niet). Dat gebeurt vrijdag om 17.00. (of eerder)

Hoe kan ik maken dat het iedere zaterdag morege eraf gaat? (dat hij wijzigt naar (in de database) actief = 0

Bedankt!

5 antwoorden

Gesponsorde links
Offline Nrzonline - 17/10/2006 21:27 (laatste wijziging 17/10/2006 21:27)
Avatar van Nrzonline PHP ver gevorderde cronjobs gebruiken...
meer info over cronjobs: google.nl
Offline kenzo - 17/10/2006 21:30
Avatar van kenzo PHP beginner ik heb geen shell ?
Offline nielsvdwal - 17/10/2006 21:37
Avatar van nielsvdwal PHP gevorderde dan kan je misschien doen van.. elke keer checken of het zaterdag is.. en 1ste die op zaterdag is.. dan een code uitvoeren..

als je het niet snapt, dan begrijp ik dat.. maar ik kan er nu even niks beters van maken 
Offline Nrzonline - 17/10/2006 21:57 (laatste wijziging 17/10/2006 22:19)
Avatar van Nrzonline PHP ver gevorderde
  1. <?PHP
  2.  
  3. // Config updaten met 3 dagen en 17 uur, zodat hij staat op 6dagen+17uur (Zaterdag 15:00),
  4. // deze dus zo instellen zodat hij op zaterdag 15:00 uit gaat komen om de update-datum van
  5. // het volgende stukje script te kunnen controleren.
  6. $sQuery = "UPDATE config SET zaterdag = '" . (time()+60*60*24*3)+(time()+60*60*17) . "'";
  7. $qUpdConfig = mysql_query ($sQuery) or die (mysql_error ());
  8.  
  9. // De datum van zaterdag even in een variabel zetten, zodat we die weer kunnen gebruiken
  10. // in de update van de audities.
  11. $sQuery = "SELECT zaterdag FROM config";
  12. $qSelZaterdag = mysql_query ($sQuery) or die (mysql_error ());
  13. $sZaterdag = mysql_result ($qSelZaterdag, 0);
  14.  
  15. // Audities updaten die zaterdag 15:00 voorbij zijn. Deze bovenaan de lijst zetten, zodat hij
  16. // update voordat hij bijvoorbeeld de auditielijst gaat weergeven.
  17. $sQuery = "UPDATE audities SET actief = 0 WHERE datum < " . $sZaterdag;
  18. $qUpdAudities = mysql_query ($sQuery) or die (mysql_error ());
  19.  
  20. // Een zaterdag is voorbij, weer een nieuwe timestamp aanmaken voor de nieuwe zaterdag.
  21. if ($sZaterdag < time ()) // Als de zaterdag voorbij is, hetvolgende uitvoeren:
  22. {
  23. $sCurrentTime = time ();
  24. $sTimeDiff = $sCurrentTime - $sZaterdag;
  25. $sTimeAdd = (time ()+60*60*24*7) - $sTimeDiff;
  26.  
  27. $sQuery = "UPDATE config SET zaterdag = zaterdag + " . $sTimeAdd;
  28. $qUpdZaterdag = mysql_query ($sQuery) or die (mysql_error ());
  29. }
  30.  
  31. ?>


Ik hoop dat je dit snapt, het lijkt misschien ingewikkeld.. maar dat is het niet. Of het nou ook echt zo goed werkt, dat weet ik niet 

De methode komt neer op het volgende.
- Je stelt de 'timestamp' (datum) in wanneer het zaterdag 15:00 is. In dit geval is het dag 2 (dinsdag) en 22:00. Er moeten dus 3 volledige dagen bij en 17 uur om op dag 6 uit te komen, en 15:00.
- Je de tweede query bovenaan de pagina, voordat je dus een lijst van actieve audities gaat weergeven, zodat die inactief worden gezet. Nu kan je een lijst gaan weergeven met actieve (actief=1) audities.
- Natuurlijk moet je bij het plaatsen van een auditie de timestamp van dat moment even mee geven. ( time() );

Ik weet niet of dit script werkt, is namelijk niet getest. Kunnen bugs in voor komen/typfouten. Alle fouten dus voorbehouden. Maar het geeft denk ik wel een indicatie naar mijn denkwijze, hoe je dit zou kunnen aanpakken.

Ik hoop dat je er iets aan hebt. Nogmaals, mocht je cronjobs kunnen regelen... doe dat dan! Echt 10x beter dan dit.
Offline kenzo - 18/10/2006 15:04
Avatar van kenzo PHP beginner Heey,

Bedankt allemaal...

ga het eens proberen. Helaas heb ik geen shell, kan dus ook geen cronjobs gebruiken... (ik ga eens vragen of ik die kan krijgen).

Bedankt!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.193s