delete files na een x aantal dagen.
Ik wil graag een script maken dat de datum van alle file checkt als er iets wrdt geupload, en dan moet alles wat x dagenouder is current date verwijderd worden.
Mijn vraag is, hoe kan ik zorgen dat het script weet hoeveel dagen ouder dat file is dan de current date.
En hoe hij dan alle files kan verwijderen, die die ouder zijn dan x aantal dagen.
mysql_query("DELETE FROM tabel WHERE datum < DATE_SUB(NOW(), INTERVAL 10 MINUTE)");
mogelijkheden:
SECOND, MINUTE, DAY, MONTH, YEAR
Nu word alles naar 10 minuten dus verwijderen.
kan het zijn dat hij dan pas word verwijderd als er iemand op die pagina komt?
Ja, dan pas wordt het script uitgevoerd. Anders moet je een scriptje schrijven met de php cgi binary (als die geinstalleerd is) en die met crontab elke dag/uur/minuut/whenever uitvoeren
en hoe doe je dat dan precies? een tut ofzo hierover?:D
okej bedankt dat ga ik wel even proberen. :)
include '/config.php';
include 'l/opendb.php';
$query = "INSERT INTO upload (name, size, type, content, names, txtdes, date) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content', '$filenames', '$filedes', '$date')";
mysql_query($query) or die('Error, query failed');
include '/closedb.php';
waar zou ik deze code:
mysql_query("DELETE FROM tabel WHERE datum < DATE_SUB(NOW(), INTERVAL 10 DAY)");
moeten plakken?
die code check of er bestanden zijn die er te lang staan. Dus dat moet zo vaak mogelijk neem ik aan.
Ik zou hem in je config zetten, want die word altijd opgevraagd neem ik aan.
Verder vergeet je nog om het bestand zelf te verwijderen, je verwijderd nu alleen de gegevens uit de database ...
Quote:
waar zou ik deze code:
mysql_query("DELETE FROM tabel WHERE datum < DATE_SUB(NOW(), INTERVAL 10 DAY)");
moeten plakken?
mysql_query("DELETE FROM tabel WHERE datum < DATE_SUB(NOW(), INTERVAL 10 DAY)");
moeten plakken?
Het maakt niet uit waar je die code plakt. In iedergeval wel onder de Database connectie. je moet 'tabel' en 'datum' wel even voor jezelf veranderen. tabel zou upload worden en datum zou date moeten zijn, denk ik zo aan jou script te zien.
@Koen, hoe kan ik dan zorgen dat het file wordt verwijderd?
Hoe kan ik zorgen dat hij dit script alleen uitvoert als er minimaal 500 images in zitten?
Gewijzigd op 01/01/1970 01:00:00 door zap
Code (php)
1
2
3
4
5
2
3
4
5
$sql = "SELECT * FROM tabel";
$res = mysql_query($sql) or die(mysql_error);
if (mysql_num_rows($res) > 500) {
mysql_query("DELETE FROM tabel WHERE datum < DATE_SUB(NOW(), INTERVAL 10 DAY)");
}
$res = mysql_query($sql) or die(mysql_error);
if (mysql_num_rows($res) > 500) {
mysql_query("DELETE FROM tabel WHERE datum < DATE_SUB(NOW(), INTERVAL 10 DAY)");
}
Of niet?
ik geoof dat dit wel werkt, bedankt :)
bedankt het werkt nu allemaal heel goed :) , maar ik heb nog 1 vraagje. nu verwijderd hij alle files die ouder dan een x aantal dagen zijn, als er meer dan 500 in zitten. hoe kan ik zorgen dat hij de oudste files verwijderd totdat er weer 500 in zitten?