Stergere date din baza de date dupa un anumit timp

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
cipriand
Mesaje:18

Stergere date din baza de date dupa un anumit timp

Am un subdomeniu de anunturi , intra anunturile in baza de date in schimb sunt nevoit sa le sterg manual.
Ce trebuie sa fac sa se stearga automat dupa un anumit timp , ce trebuie sa mai adaug?
Va multumesc.

steell Mesaje:190
Mai adaugi o coloana ce va contine data camd sa expire anuntul.
Apoi in pagina faci un Select si verifici daca exista anunturi care au trecut de aceasta data, daca exista le stergi.

MarPlo Mesaje:4343
Se creaza o coloana de tip INT(). Apoi, la Insert se adauga timpul Timestamp (Unix, in secunde) cand sa expire acel rand /anunt.
Se face si un Delete care sa stearga randurile cu Timestamp-ul din acea coloana mai mic decat cel curent.
De exemplu, sa fie pastrate doar 30 de zile:

Cod: Selectaţi tot

// sterge unde timpul curent a depasit "expira"
$sql = "DELETE FROM table_name WHERE expira <". time();
// ...

$expira = time() + 3600*24*30;     // Timestamp sa expire peste 30 de zile
$sql = "INSERT INTO table_name (column1, column2, expira) VALUES (value1, value2, $expira)";

evident Mesaje:168
Usor ar fi si cu Cron Jobs, sa ii dai sa ruleze un anumit script dupa un anumit timp.
Scriptul ti-l faci tu cum vrei. Iar in baza de date baga o coloana de tip date cu numele "expira" care sa fie adaugata automat la inserarea anuntului.
Scriptul pe care il faci sa fie utilizat de "Cron Jobs" ii dai sa stearga din baza de date toate anunturile in care expira e mai mic decat data adaugarii; asta ar fi o idee. Ma gandesc ca merge.

Subiecte similare