Ta bort efter 60 dagar

PHP

3 svar · 223 visningar · startad av stevenet

Medlem sedan juni 20001 251 inlägg
Trådstart#1

Jag vill ta bort en annons efter 60 dagar. Jag använder mig av en MySQL-databas och datumformatet är 2000-11-02.
Låt oss anta att tabellen har två kolumner, id och datum. Hur gör jag?

Medlem sedan feb. 20001 050 inlägg
#2

Antar att det inte är MySQL som är problemet.

<?
$datum="2000-10-02";
$old=strtotime(str_replace("-","/",$datum));
$today=strtotime(date("Y/m/d"));
if(($alder=floor(($today-$old)/86400))>60)
echo "Den skall tas bort nu!\n";
else
echo "All clear, den är bara $alder dagar gammal\n";
?>

/nicclas - http://www.nyhetsrubriker.com

Medlem sedan dec. 19991 749 inlägg
#3

Utveckling av koden ovan...

<?
$res=mysql_query("SELECT * FROM tabell");    

while($r=mysql_fetch_array($res),MYSQL_ASSOC) {
  $datum=$r[datum];
                          $old=strtotime(str_replace("-","/",$datum));                        $today=strtotime(date("Y/m/d")); 
                        if(($alder=floor(($today-$old)/86400))>60)
 mysql_query("DELETE FROM tabell WHERE id=$r[id]");
}
?>

Observera att den här koden kommer köras när nån är på sidan. Och det är alltså teknisk möjligt att en annons inte kommer tas bort om ingen visar sidan.

Mitt förslag är dock inte att du tar bort annonsen utan gör ett enumfält som är flagga om annonsen ska visas eller inte. Du vill väl veta hur många gånger annonsen visats och klickats på efter att den slutat gälla?

Medlem sedan juni 20001 251 inlägg
#4

Tackar! Kommer att köra en crontab varje dag för att utföra detta.

248 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)