Ir para conteúdo
Fórum Script Brasil
  • 0

Como deletar cadastro do BD usando "data < '$tempo'"


Murilo Cabral

Pergunta

Estou usando este código para excluir os agendamentos com datas e horários já passados em relação ao tempo atual.

Abaixo relaciono o código usado:

<?php
while($res = mysql_fetch_array($select_agenda)){
    
    $id = $res['id'];
    $nome = $res['nome'];
    $tel = $res['tel'];
    $cel = $res['cel'];
    $email = $res['email'];
    $plano = $res['plano'];
    $data = $res['data'];
    $horas = $res['horas'];
    $tempo = date("d/m/Y  H:i:s",time()-86400);

    $sql = mysql_query("DELETE FROM agendar WHERE data < '$tempo'");
?>

Sabendo que 86400 refere-se a quantidade de segundos de um dia, estou usando o código acima, e excluindo os agendamentos passados referente ao tempo atual, na virada das datas.
Seguindo este raciocínio, alterei para -1800, para que fosse excluídos os arquivos a cada 30 minutos.
Ficando assim:

$tempo = date("d/m/Y H:i:s",time()-1800);
$sql = mysql_query("DELETE FROM agendar WHERE data < '$tempo'");


Mas dessa forma esta excluindo todos os registros, e não os ultimos 30 minutos referente ao tempo real.
Os agendamentos são feitos com intervalos de 30 minutos.
Se os amigos puderem me dar uma ajudar de como devo proceder para os agendamentos sejam excluídos a cada 30 minutos, ficarei muito agradecido.
Grande abraço à todos.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
$intervalo=1440; //minutos
set_time_limit(0);


$agora=time();
$expirar = $intervalo*60-(time()-$agora));


$sqlQuery = 'SELECT * from agendar where data < '.$expirar;

$result = mysql_query($sqlQuery, $link);
$norows = mysql_num_rows($result);

if($norows > 0){
   $data = mysql_fetch_array($result);

   foreach($data as $expdata){
	$ID = $expdatap['Id']; // ID's

	// Deletando valores
	$sqlQuery = 'DELETE FROM agendar where ID='.$ID;
	mysql_query($sqlQuery);

   }
   
}else
  // redireciona para algum lugar se os valores não existir...
   

}

Testa isso!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Takanaue, desculpe mas não entendi a sua orientação, eu tomei a liberdade de enviar todo o código para que vc. possa dar uma analisada no que estou fazendo, e se possível monta-la com a sua dica.
E desde já meus agradecimentos pela sua atenção e paciência, pois sou leigo em PHP, mas estou aprendendo...Rsrsrssr...
Lembrando de que do jeito que esta, exclui os registros com as datas do dia anterior.

Abraços.

<body> 
<?php
include 'conexao.php';
$prof = $_GET['prof'];
$select_agenda = mysql_query("SELECT * FROM agendar WHERE prof = '$prof' ORDER BY data, horas asc");
$count = mysql_num_rows($select_agenda);
if($count == ''){
}
?>

<table align="center">
<tr><td width="470" colspan="3">Existe <?php echo $count; ?> Cliente(s) Agendado(s) para o Profissinal <?php echo $prof; ?></td>
<td><a href="sel_prof.php"</a>Voltar</td><td width="30"></td><td width="100"><a href="sel_prof.php">Sair da Agenda</a></td></tr>
</table><br />

<?php
while($res = mysql_fetch_array($select_agenda)){
    $id = $res['id'];
    $nome = $res['nome'];
    $tel = $res['tel'];
    $cel = $res['cel'];
    $email = $res['email'];
    $plano = $res['plano'];
    $data = $res['data'];
    $horas = $res['horas'];
    $tempo = date("d/m/Y  H:i:s",time()-86400/* ou -1800 para cada 30 minutos */);

    $sql = mysql_query("DELETE FROM agendar WHERE data < '$tempo'");
?>

<div align="center">
<div align="center" id="rel" style="width:600px; height:auto; border-top:1px solid #000; background:#fff;">
<table align="center">
<tr>
<td><span style="font:17px 'Arial Black', Gadget, sans-serif; color:#000">Data Agendada: </span>
    <span style="font:17px 'Arial Black', Gadget, sans-serif; color:#f00"><?php echo $data; ?></span>
    <span style="font:17px 'Arial Black', Gadget, sans-serif; color:#000">  -  Horário: </span>
    <span style="font:17px 'Arial Black', Gadget, sans-serif; color:#f00"><?php echo $horas; ?></span>
</td>
</tr>
</table>

<table align="center">
<tr>
<td align="right">Nome do Cliente: </td>
<td align="left"><span style="font:12px 'Arial Black', Gadget, sans-serif; color:#090"><?php echo $nome; ?></span></td>
</tr>
<tr>
<td align="right">Tel. Residêncial: </td>
<td align="left"><span style="font:12px 'Arial Black', Gadget, sans-serif; color:#090"><?php echo $tel; ?></span></td></tr>
<tr>
<td align="right">Tel. Celular: </td>
<td align="left"><span style="font:12px 'Arial Black', Gadget, sans-serif; color:#090"><?php echo $cel; ?></span></td>
</tr>
<tr>
<td align="right">E-mail: </td>
<td align="left"><span style="font:12px 'Arial Black', Gadget, sans-serif; color:#090"><?php echo $email; ?></span></td>
</tr>
<tr>
<td align="right">Plano: </td>
<td align="left"><span style="font:12px 'Arial Black', Gadget, sans-serif; color:#090"><?php echo $plano; ?></span></td>
</tr>
</table>

    <?php
    include 'conexao.php';
    $sql = mysql_query("SELECT * FROM agendar");
    while ($exibe = mysql_fetch_assoc($sql));
    echo "<a href='delete.php?&id=$id".$exibe['id']."'>Excluir</a> <br>";
    ?>

</div><!-- rel -->

<?php } ?>    

</div>
</body>

Editado por Murilo Cabral
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...