Jump to content
Fórum Script Brasil
  • 0

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


Murilo Cabral
 Share

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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>

Edited by Murilo Cabral
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...