Ir para conteúdo
arldin

deletar dados automaticamente

Recommended Posts

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


$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
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.

Editado por Williams Duarte

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

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

  • +1 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.