Sie haben 2 Optionen, um dies zu verwalten, beide basierend auf der ausgewählten Zeitskala.
-
Speichern Sie eine Ablaufzeit mit der Anzeige und fügen Sie das Ablaufdatum> JETZT (); in allen Abfragen zur Auswahl von Anzeigen (diese Art negiert die Anforderung für ein "aktives" Feld.
-
Verwenden Sie ein Ereignis, um dies zu verwalten.
Methode 1 erfordert möglicherweise, dass ein Administrator regelmäßig Anzeigen bereinigt.
Methode 2 - Sie können noch keine Ereignisse in einer Prozedur erstellen (das letzte Mal, als ich es überprüft habe), aber sie ermöglichen es Ihnen, diese Art von Verwaltungsaufgaben festzulegen und zu vergessen, ohne andere Überprüfungen und andere Dinge ausführen zu müssen.
Jedes Ereignis muss einen eindeutigen Namen haben, sonst beenden Sie das bereits angegebene Ereignis...
Beispiel:
<?php
$qry = "insert into ads values ( 'x', 'y', 'z' );";
/* db execute qry (pdo or what ever) */
$adId = // retriev a unique reference for ad.
$days = $_POST['expire'] == 16 ? 16 : 8;
$qry = "CREATE EVENT updateAd_".$adId."
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL ".$days." DAY
ON COMPLETION NOT PRESERVE
DO
update ads set active = 'false' where ad_id = ".$adId.";";
// db execute qry (pdo or what ever);
?>
Das Ereignis wird in der mysql-Datenbank und nicht in Ihrer eigenen gespeichert, daher benötigen Sie einige Berechtigungen auf Administratorebene, um es zu implementieren.