Je hebt 2 opties om dit te beheren, beide gebaseerd op de tijdschaal die ze selecteren.
-
Sla een vervaltijd op bij de advertentie en neem de vervaldatum op> NU(); in alle zoekopdrachten om advertenties te selecteren (dit ontkent de vereiste van een 'actief' veld.
-
gebruik een evenement om dit te beheren.
Methode 1 vereist mogelijk dat een beheerder periodiek 'advertenties opruimt'.
Methode 2 - je kunt nog geen gebeurtenissen in een procedure maken (de laatste keer dat ik het controleerde), maar ze stellen je in staat om dit soort beheerderstaken in te stellen en te vergeten zonder andere controles en wat-niets te hoeven uitvoeren.
Elk evenement moet een unieke naam hebben, anders stop je het al gespecificeerde evenement...
voorbeeld:
<?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);
?>
De gebeurtenis wordt opgeslagen in de mysql-database en niet die van uzelf, dus u hebt enkele machtigingen op beheerdersniveau nodig om te implementeren.