login  Naam:   Wachtwoord: 
Registreer je!
 Forum

hulp nodig alternatieve cronjob

Offline slabbetje - 22/01/2007 15:47
Avatar van slabbetjeNieuw lid hoi zit met een raar probleem, t kan aan mij liggen hor maar
ik laat dus de datum checken in sql met het volgende script

  1. $tijd1 = mysql_query("SELECT UNIX_TIMESTAMP(`tijd`) AS `tijd`,`naam` FROM `cronjobs`");
  2.  
  3. $tijd = mysql_fetch_object($tijd1);
  4.  
  5. if(floor($tijd/3600) != floor(time()/3600)) {
  6.  
  7. wat er moet uitgevoert worden
  8.  
  9. }


Dit script staat in een config file die in allee paginas word geinclude,
ik wil dus elk uur wat laten wijzigen in de sql tabel maar het probleem is hij doet t elke keer als ik naar een ander pagina ga
weet iemand t probleem, of een oplossing

Alvast bedankt

15 antwoorden

Gesponsorde links
Offline nielsvdwal - 22/01/2007 16:02
Avatar van nielsvdwal PHP gevorderde != veranderen in ==  
Offline Berten - 22/01/2007 16:03 (laatste wijziging 22/01/2007 16:54)
Avatar van Berten PHP beginner hoe staat tijd in je tabel opgeslagen?

met een time,datetime of een timestamp??

als je't met een datetime doet kan het zo:
  1. <?php
  2. $result = mysql_query("SELECT TIMEDIFF(now(),tijd) as time,naam from cronjobs") or die(mysql_error());
  3. while($row = mysql_fetch_array($result)) {
  4. $tst = explode(":",$row['time']);
  5. if($tst[0] != "00") {
  6. voer uit
  7. }
  8. }
  9. ?>
Offline slabbetje - 22/01/2007 16:10
Avatar van slabbetje Nieuw lid datetime, oja vergeten erbij te zeggen als je binnen t uur niet op de site bent geweest zou hij dus nog moeten veranderen en dan een update die de datum vernieuwt met tijd
Offline Berten - 22/01/2007 16:55
Avatar van Berten PHP beginner hmz

moeilijk om iets uit te voeren als er geen pagina aangeproepen wordt.
Dit doe je met cronjobs, als'k naar je titel kijk ken je't

Offline slabbetje - 22/01/2007 17:23
Avatar van slabbetje Nieuw lid nee ik ken juist geen cronjobs daarom zoek ik een soort van alternatief ;) en dat is met die codes die erboven staan
Offline Berten - 22/01/2007 18:08 (laatste wijziging 22/01/2007 18:17)
Avatar van Berten PHP beginner Als jezelf je pc altijd op hebt staan gaat't volgende ook.

maak een pagina met een meta-refresh van 3600 seconden.
zet daarin de code die uitgevoerd moet worden.
ga naar de pagina in je browser, laat je browser openstaan en de webpagina zal elk uur je browser opnieuw naar die pagina laten gaan, en het script zal telkens uitgevoerd worden.

Offline slabbetje - 22/01/2007 18:26 (laatste wijziging 22/01/2007 18:55)
Avatar van slabbetje Nieuw lid nee bedankt :S een checker in php is makelijker dan kan je per account laten checken als je bijv 2uur nie op je acc bent geweest krijg je dus 2x die wijziging zoiets moet t worden

zoiezo mn computer staat niet de heledag aan dus dat is geen optie
Offline Stefan14 - 22/01/2007 19:24
Avatar van Stefan14 PHP gevorderde @slabbetje, waarom is het perse nodig dat die update elk uur doorgevoerd wordt, pas al er iemand op de site komt wordt het belangrijk dat de tabel op orde is lijkt mij.

Als er dus niemand is hoeft er ook niet perse geupdate worden.

Mocht het zo zijn dat er bijv. elk uur een bepaald aantal punten bij een veld bij moeten komen, dan zou je eventueel kunnen bijhouden wanneer er het laatst geupdate is, en aan de hand daarvan berekenen hoeveel punten erbij moeten komen.

Maar als het is om een veld te resetten hoeft dat natuurlijk niet perse elk uur, maar is het ruimschoots op tijd wanneer er weer iemand op de (eerste pagina van de) website komt.
Offline slabbetje - 22/01/2007 19:32
Avatar van slabbetje Nieuw lid het is voor punten bijvoeren voor een rpg, maar mijn host ondersteunt dus geen cronjobs dat is nou namelijk t lastige

mischien ook wat verkeerd uitgelegt
maar het is de bedoeling dat zodra een account online komt hij de boel
eenmalig checkt en als het dan 1uur terug is dat je ingelogt bent word het bijgewerkt voor 1x
2uur 2x
3uur 3x enz
Offline Berten - 22/01/2007 20:25
Avatar van Berten PHP beginner op volgende manier bekom je hoeveel uren het geleden is dat iemand nog eens had ingelogd.
voor 4 dagen bv zal $tst[0] 96 weer geven.
  1. <?php
  2. $result = mysql_query("SELECT TIMEDIFF(now(),tijd) as time,naam from cronjobs") or die(mysql_error());
  3. while($row = mysql_fetch_array($result)) {
  4. $tst = explode(":",$row['time']);
  5. $aantalkerenupdateuitvoeren = $tst[0];
  6. }
  7. ?>
Offline slabbetje - 22/01/2007 20:43 (laatste wijziging 23/01/2007 15:19)
Avatar van slabbetje Nieuw lid oke probeer wel ff wat dit doet en anders gaat deze topic gewoon verder ;P

Edit:

Het werkt, alleen niet peruur :S kheb deze code gebruikt:

  1. <?php
  2. $result = mysql_query("SELECT TIMEDIFF(now(),tijd) as time,naam from cronjobs") or die(mysql_error());
  3. while($row = mysql_fetch_array($result)) {
  4. $tst = explode(":",$row['time']);
  5. if($tst[0] != "00") {
  6. voer uit
  7. }
  8. }
  9. ?>

moet het niet if($tst[0] != ":00") {
zijn ??
Offline Kr4nKz1n - 23/01/2007 15:32
Avatar van Kr4nKz1n Onbekend Nee zonder :, en dan heb je gelijk geen quotes meer nodig.
Offline slabbetje - 26/01/2007 16:39
Avatar van slabbetje Nieuw lid het werkt al bedankt
Offline riekele - 26/01/2007 18:14
Avatar van riekele PHP beginner cronjob.de ?
Offline slabbetje - 26/01/2007 19:53
Avatar van slabbetje Nieuw lid nee bedankt :S daar moet je permaand voor betalen dan neem ik liever
een host waar ik gewoon cronjobs standaard bij heb
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s