Имате 2 опции да управлявате това и двете въз основа на избрания от тях срок.
-
Запазете време на изтичане с рекламата и включете изтичане> СЕГА(); във всякакви заявки за избор на реклами (този вид отрича изискването за „активно“ поле.
-
използвайте събитие, за да управлявате това.
Метод 1 може да изисква от администратор периодично да „изчиства рекламите“.
Метод 2 – все още не можете да създавате събития в процедура (последния път, когато проверих), но те ви позволяват да задавате и забравяте този вид администраторски задължения, без да се налага да изпълнявате други проверки и какво ли още не.
Всяко събитие трябва да има уникално име, в противен случай ще убиете вече посоченото събитие...
пример:
<?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);
?>
Събитието се съхранява в базата данни на mysql, а не във вашата собствена, така че имате нужда от някои разрешения на ниво администратор, за да приложите.