Hallo, ik wil met cronjobs alles ouder dan een maand verwijderen uit een tabel.

Dit had ik al: $date= date("Y-") . date("m") - 1 . date("-d H:i:s");

Hoe ga ik dan verder, of is dit niet goed?
je gaat niet verder.

je steekt het gewoon in het begin van je include php script en voert het dus niet uit als cron.

ik neem aan dat het over een database gaat, leer dan even werken met de date en timefunctions van je database. dit zal tien keer sneller werken. tip: het zal ws iets te maken hebben met TIMEDIFF()
<?php
$month = date("Y-m-d H:i:s", time() - (60*60*24*30));
echo $month;

$pm_query = mysql_query("SELECT id, date FROM pm");
while ($pm_row = mysql_fetch_row($pm_query)) {
if ($pm_row[1] >= $month) {
mysql_query("DELETE FROM pm WHERE id = '" . $pm_row[0] . "'");
}
}
?>

Dat werkt niet :S
Moment,

Ik maak even een stukje code voor je.

Voorkauwen is ook niet alles ;)
Ga eens kijken naar de functie DATEDIFF. Daarna kijk je of een datum veld in je tabel 7 dagen kleiner is dan nu " NOW() ".
Als de voorbeelden bekijkt dan ben je al een eind verder denk ik :)

Ga nou niet denken, "ik doe het met php" ... SQL kan dit sneller en beter, als je vragen hebt hoor ik het wel :)

Een delete query maken lukt je wel he ;)
ik heb toch al gezegd dat je met de DB functies moet gaan werken..

kijk nog maar eens in die link van mij naar DATEDIFF
Waarom zou je items verwijderen? zit je al aan de 10 miljard records?
Een cronjob om iets wat niemand in de weg staat te verwijderen... Alsof er ook maar iemand wakker van zal liggen dat je per ongeluk een jaar of 10 vergeet om die records te verwijderen!

1) Cronjobs heb je zelden of nooit nodig
2) Mocht je denken dat je toch cronjobs nodig hebt, denk dan nog eens heel goed na of dat wel echt zo is.
3) Mocht je ondanks punten 1 en 2 toch cronjobs nodig hebben, vraag dan ook eens aan anderen of er geen betere oplossingen zijn.
4) Tja, wellicht ben je niet slim genoeg... ;)
5) Er zijn toepassingen waarvoor je echt een cronjob nodig hebt. Maar dat is hier ABSOLUUT NIET het geval.

Duik even de MySQL-handleiding in en pak de juiste datumfuncties er even bij. Zoek dan ook nog even naar de mogelijkheden van een database, een paar miljoen records kun je zonder problemen opslaan. Wanneer er 1 of 2 PHPhulpers zijn die nog grotere (en functionele!) databases hebben, dan is het veel. Het lijkt mij sterk dat jij dit probleem al hebt. Komt bij dat dit soort problemen meestal duidt op een groot succes van de website. Dan huur je even een goede dba in en je zet wat betere servers neer, en je kunt weer een lange tijd vooruit!

Ga geen problemen oplossen die je niet hebt...
Ik ben het helemaal eens met pgFrank.. (hoewel ik zelf ook gewoon bepaalde dingen na een tijd automatisch verwijder.. :P)

Je kunt ook kijken naar Deze tut van Blanche. Die is ook erg leerzaam (vind ik)

Reageren