arldin 1 Denunciar post Postado Maio 25, 2015 Bom dia a todos. Estou querendo fazer um script para deletar os dados de uma tabela automaticamente apos 30 dias Estou usando o sequinte script <?php include("config.php"); $data = date("Y-m-d"); $sql = ("DELETE FROM pag WHERE data < NOW();"); $res = mysql_query($sql); ?> Só que esta deletando todos os registro, o que eu quero que ele so delete o que estiver com a data a mais de 30 dias Como posso fazer para so deletar os que estivem com mais de 30 dias Compartilhar este post Link para o post Compartilhar em outros sites
Criquio 19 Denunciar post Postado Maio 25, 2015 $data = date("dmY", strtotime("-30 days")); $sql = ("DELETE FROM pag WHERE data < $data;"); $res = mysql_query($sql); Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 25, 2015 DELETE FROM `pag` WHERE `data` < DATE_SUB( NOW(), INTERVAL 30 DAY ) Utilize mysqli_* ou PDO A extensão mysql_* está depreciada a partir da versão 5.5.0 vai ser removida no futuro. Compartilhar este post Link para o post Compartilhar em outros sites
arldin 1 Denunciar post Postado Maio 25, 2015 A sugestão do amigo Criquio Calavera continua deletando todos os registros e a do Williams Duarte não deleta Quanto ao PDO eu ainda não sei mexe com ele Compartilhar este post Link para o post Compartilhar em outros sites
Criquio 19 Denunciar post Postado Maio 25, 2015 Qual o formato da data na tabela? Precisa formatar para o formato usado nela. Geralmente é Y-m-d no lugar de dmY Compartilhar este post Link para o post Compartilhar em outros sites
arldin 1 Denunciar post Postado Maio 25, 2015 estou usando este formato Y-m-d Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 25, 2015 Execute a SQL abaixo dentro de uma função DELETE FROM `pag` WHERE `data` < DATE_SUB( NOW(), INTERVAL 30 DAY ) Vamos pegar você pela mão!!! :sick: No seu código abaixo: <?php include("config.php"); $data = date("Y-m-d"); $sql = ("DELETE FROM pag WHERE data < NOW();"); $res = mysql_query($sql); ?> Remova e troque nas linhas comentadas <?php include("config.php"); $data = date("Y-m-d"); // Remova esta linha $sql = ("DELETE FROM pag WHERE data < NOW();"); //troque a SQL $res = mysql_query($sql); ?> O código final, ficaria desta forma <?php include("config.php"); $sql = ("DELETE FROM `pag` WHERE `data` < DATE_SUB(NOW(), INTERVAL 30 DAY)"); $res = mysql_query($sql) or die('Error:'. mysql_error()); Se mesmo assim não entendeu, revise o básico do PHP, ou seja, comece tudo novamente. Aprenda PHP do jeito certo! www.ultimatephp.com.br/curso Compartilhar este post Link para o post Compartilhar em outros sites
arldin 1 Denunciar post Postado Maio 25, 2015 Ok valeu pela força agora esclui só as que estão com mais de 30 dias Compartilhar este post Link para o post Compartilhar em outros sites