Remover ou deixar de exibir uma informação vinda do banco de dados

Enviada por Árisson Lima 
Árisson Lima
Remover ou deixar de exibir uma informação vinda do banco de dados
25 de October de 2018 às 09:53PM
Galera, boa noite, vê se alguém pode me ajudar aqui com uma dúvida. Eu tenho uma tabela MySQL chamada de ofertas, na qual eu cadastro ofertas e promoções nela, tenho um campo nessa tabela que se chama data de expiração. E a dúvida é a seguinte como posso fazer um código de tal forma que ele verifique a data atual e se ele for igual a data de expiração ela apague a oferta ou melhor altere o status para off coisa do tipo.
<?php
$dataAtual = '2018-10-28';
$dataLimite = '2018-10-27';

// Se a data atual for maior ou igual que a data limite
if (strtotime($dataAtual) >= strtotime($dataLimite)) {
// aqui o código MySQL DELETE e/ou UPDATE
}
Você também pode verificar na chamar.. tipo:

$dataAtual = date("Y-m-d");
$sql = "SELECT * FROM ofertas WHERE status='on' AND data < '$dataAtual'";
Dependência do acesso dos usuários

// Pega apenas os registos com as datas dentro da validade e status ON
$dbh = new PDO(..);
$dbh->query("SELECT * FROM ofertas WHERE status = 'on' AND data < NOW()");
..

Usando o "Cron Job" no servidor para atualizar, automaticamente, as datas expiradas para OFF

$dbh = new PDO(..);
$dbh->exec("UPDATE ofertas SET status = 'off' WHERE data >= NOW()");

Como usar Cron Job - https://www.youtube.com/watch?v=huFYEcPS8hg
Árisson Lima
Re: Remover ou deixar de exibir uma informação vinda do banco de dados
28 de October de 2018 às 08:58AM
Valeu pessoal muito obrigado pela ajuda vou tentar implementar aqui tudo que me falaram.
Desculpa a confusão acima.. Vou tentar explicar melhor.

Para pegar as ofertas no banco de dados.

// Retorna todas ofertas com datas dentro da validade e o status = ON
$dbh = new PDO(..);
$ofertas = $dbh->query("SELECT * FROM ofertas WHERE status = 'on' AND dataLimite < NOW()", PDO::FETCH_ASSOC);

//print_r($ofertas);


Para verificar e validar as ofertas, precisamos:

1. Criar um arquivo em PHP, por exemplo, validar-ofertas.php
2. Código para mudar o status para OFF caso a data limite expire.
3. Programar o "Cron Job" para executar de forma automática esse arquivo no servidor (ex: diariamente às 00:01h)


validar-ofertas.php

// Se a data limite da oferta for maior ou igual a data atual atualiza o status para OFF
$dbh = new PDO(..);
$dbh->exec("UPDATE ofertas SET status = 'off' WHERE dataLimite >= NOW()");


Como usar Cron Job - https://www.youtube.com/watch?v=huFYEcPS8hg
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.