Vous avez 2 options pour gérer cela en fonction de l'échelle de temps qu'ils sélectionnent.
-
Stockez une heure d'expiration avec l'annonce et incluez l'expiration> MAINTENANT (); dans toutes les requêtes pour sélectionner des annonces (ce type de suppression de l'exigence d'un champ "actif".
-
utilisez un événement pour gérer cela.
La méthode 1 peut nécessiter qu'un administrateur "nettoie les publicités" périodiquement.
Méthode 2 - vous ne pouvez pas encore créer d'événements dans une procédure (la dernière fois que j'ai vérifié), mais ils vous permettent de définir et d'oublier ce type de tâches administratives sans avoir à exécuter d'autres vérifications et autres.
Chaque événement doit avoir un nom unique sinon vous tuerez l'événement déjà spécifié...
exemple :
<?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);
?>
L'événement est stocké dans la base de données mysql et non dans la vôtre, vous avez donc besoin d'autorisations de niveau administrateur pour l'implémenter.