PHP ver gevorderde |
|
<?PHP
// Config updaten met 3 dagen en 17 uur, zodat hij staat op 6dagen+17uur (Zaterdag 15:00),
// deze dus zo instellen zodat hij op zaterdag 15:00 uit gaat komen om de update-datum van
// het volgende stukje script te kunnen controleren.
$sQuery = "UPDATE config SET zaterdag = '" . (time()+60*60*24*3)+(time()+60*60*17) . "'";
$qUpdConfig = mysql_query ($sQuery) or die (mysql_error ());
// De datum van zaterdag even in een variabel zetten, zodat we die weer kunnen gebruiken
// in de update van de audities.
$sQuery = "SELECT zaterdag FROM config";
$qSelZaterdag = mysql_query ($sQuery) or die (mysql_error ());
$sZaterdag = mysql_result ($qSelZaterdag, 0);
// Audities updaten die zaterdag 15:00 voorbij zijn. Deze bovenaan de lijst zetten, zodat hij
// update voordat hij bijvoorbeeld de auditielijst gaat weergeven.
$sQuery = "UPDATE audities SET actief = 0 WHERE datum < " . $sZaterdag;
$qUpdAudities = mysql_query ($sQuery) or die (mysql_error ());
// Een zaterdag is voorbij, weer een nieuwe timestamp aanmaken voor de nieuwe zaterdag.
if ($sZaterdag < time ()) // Als de zaterdag voorbij is, hetvolgende uitvoeren:
{
$sCurrentTime = time ();
$sTimeDiff = $sCurrentTime - $sZaterdag;
$sTimeAdd = (time ()+60*60*24*7) - $sTimeDiff;
$sQuery = "UPDATE config SET zaterdag = zaterdag + " . $sTimeAdd;
$qUpdZaterdag = mysql_query ($sQuery) or die (mysql_error ());
}
?>
<?PHP // Config updaten met 3 dagen en 17 uur, zodat hij staat op 6dagen+17uur (Zaterdag 15:00), // deze dus zo instellen zodat hij op zaterdag 15:00 uit gaat komen om de update-datum van // het volgende stukje script te kunnen controleren. $sQuery = "UPDATE config SET zaterdag = '" . (time()+60*60*24*3)+(time()+60*60*17) . "'"; // De datum van zaterdag even in een variabel zetten, zodat we die weer kunnen gebruiken // in de update van de audities. $sQuery = "SELECT zaterdag FROM config"; // Audities updaten die zaterdag 15:00 voorbij zijn. Deze bovenaan de lijst zetten, zodat hij // update voordat hij bijvoorbeeld de auditielijst gaat weergeven. $sQuery = "UPDATE audities SET actief = 0 WHERE datum < " . $sZaterdag; // Een zaterdag is voorbij, weer een nieuwe timestamp aanmaken voor de nieuwe zaterdag. if ($sZaterdag < time ()) // Als de zaterdag voorbij is, hetvolgende uitvoeren: { $sTimeDiff = $sCurrentTime - $sZaterdag; $sTimeAdd = (time ()+60*60*24*7) - $sTimeDiff; $sQuery = "UPDATE config SET zaterdag = zaterdag + " . $sTimeAdd; } ?>
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. |