Árisson Lima
Remover ou deixar de exibir uma informação vinda do banco de dados
26 de October de 2018 às 02:53AM
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 01:58PM
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.