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

Deletando registro com "= date("d/m/Y His",time()+ 86400)-


Murilo Cabral

Pergunta

Fala amigos do Forum, beleza?

Estou precisando da ajuda dos amigos para resolver um problema que esta me deixando ficando maluco.

Seguinte, fiz o código abaixo para deletar registros do DB com datas anteriores a data atual.

________________________________________________________________________

<?

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 His",time()+ 86400)-1;

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

?>

________________________________________________________________________

Cadastrei a seguintes datas no BD:
31-01-2014

01-02-2014

02-02-2014
03-02-2014

Quando entro na página onde encontra-se o código de exclusão na data atual (02-02-2014), achei que as datas de 31-01-2014 e 01-02-2014 ambas fossem excluídas, porém somente a 31-01-2014 que esta sendo excluída.

Já tentei de varia formas, e não consigo excluir a danada da data 01-02-2014, já consegui até mesmo excluir a 03-02-2014 em uma das minhas enumeras tentativas.

Por tudo isso, estou enviando os endereços para teste para que se possível os amigos possa ar uma olhada, e me dizer onde estou errando, pois passei a madrugada de sábado para domingo tentando até agora sem sucesso.

Desculpe por mais esse problema, mas no momento só posso contar com os amigos do fórum.

Grande abraço a todos, e no aguardo de respostas, se possível positivas.

Murilo Cabral

acesso ao Cadastrar datas:

http://www.rfclinica.com.br/index.php

Acesso a relação das datas cadastradas:

http://www.rfclinica.com.br/agenda/sel_prof.php

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Olá amigos, estou de volta para informar de que consegui resolver o problema de não estar conseguindo deletar a data anterior a atual.

Erro 01 - Na linha do $sql troquei o sinal de menor < pelo o de maior > entre a data e '$tempo'
Erro 02 - Na linha do $tempo antes do 86400 troquei o sinal de subtrair - pelo de adição +, e não existe esse menos um entre o parentese e ponto e virgula.
Linha corrigida e funcionando.
$tempo = date("d/m/Y His",time()-86400);

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

Valeu amigos agora peço ajuda para que me deem uma luz de como posso fazer para impedir de que os pacientes possam selecionar no agendamento de suas consultas datas anteriores a data atual.

Abaixo eu posto o código de agendamento, onde já impeço que seja agendada datas repetidas, mas estou sem ideia de como farei o código impedindo que seja agendado datas anteriores a data atual.

Código do agendamento.

________________________________________________Início do Código___________________________________________________

<? if(isset($_POST['enter'])){
$nome = $_POST['nome'];
$tel = $_POST['tel'];
$cel = $_POST['cel'];
$email = $_POST['email'];
$plano = $_POST['plano'];
$horas = $_POST['horas'];
$prof = $_POST['prof'];
$data = $_POST['data'];
$sql = mysql_query("SELECT data,horas,prof FROM agendar WHERE data LIKE '".$data."' AND horas ='".$horas."' AND prof = '".$prof."'");
if(mysql_num_rows($sql)>=1){
echo "<meta http-equiv='refresh' content='0; URL= http://www.rfclinica.com.br/index.php'>
<script type=\"text/javascript\">
alert(\"Esta data e hora com esse Profissional, já esta agendada! Tente outra data ou hora!\");</script>";
return die;
}else{
$inserir = mysql_query("INSERT INTO agendar (nome, tel, cel, email, plano, prof, data, horas) VALUES ('$nome', '$tel', '$cel', '$email', '$plano', '$prof', '$data', '$horas')");
if($inserir == ''){
echo "<script language='javascript'>
window.alert('Ocorreu um erro ao Agendar sua Avaliação!');
</script>";
}else{
echo "<script language='javascript'>
window.alert('Avaliação Agendada com sucesso!');
</script>";
}}}?>

_______________________________________________Fim do Código_____________________________________________________

Valeu amigos fico no guardo de respostas positivas, grande abraço a todos.

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

  • 0

Olá amigos, estou de volta para tirar uma dúvida com vocês.

Eu adaptei o código abaixo para que impedisse a gravação no BD de datas anterior a data atual, porém não funcionou do jeito que eu imaginava, pois não esta gravando as datas anteriores a data atual assim como a data atual e posteriores, ou seja data alguma.

Mas quando insiro a palavra LIKE - WHERE data < LIKE '".$tempo."'"); - ,volta a gravar todas as datas sem a restrição de ser uma data anterior a data atual.

O Código esta abaixo, se alguém puder me dar um HELP, ficarei agradecido.

Acesso a pagina para teste:

http://www.rfclinica.com.br/index.php

____________________ Início de Código ____________________________________________

<? if(isset($_POST['enter'])){
$nome = $_POST['nome'];
$tel = $_POST['tel'];
$cel = $_POST['cel'];
$email = $_POST['email'];
$plano = $_POST['plano'];
$horas = $_POST['horas'];
$prof = $_POST['prof'];
$data = $_POST['data'];
$tempo = date("d/m/Y His",time());
// $sql = mysql_query("SELECT data FROM agendar WHERE data < LIKE '".$tempo."'"); // Assim grava todas as datas.
$sql = mysql_query("SELECT data FROM agendar WHERE data < '".$tempo."'"); // Assim não grava data alguma.
if(mysql_num_rows($sql)>=1){
echo "<meta http-equiv='refresh' content='0; URL= http://www.rfclinica.com.br/index.php'>
<script type=\"text/javascript\">
alert(\"Esta data não esta mais disponivel para agendamento! Tente outra data! Obrigado!!!\");</script>";
return die;
}else{
$sql = mysql_query("SELECT data,horas,prof FROM agendar WHERE data LIKE '".$data."' AND horas ='".$horas."' AND prof = '".$prof."'");
if(mysql_num_rows($sql)>=1){
echo "<meta http-equiv='refresh' content='0; URL= http://www.rfclinica.com.br/index.php'>
<script type=\"text/javascript\">
alert(\"Esta data e hora com esse Profissional, já esta agendada! Tente outra data ou hora!\");</script>";
return die;
}else{
$inserir = mysql_query("INSERT INTO agendar (nome, tel, cel, email, plano, prof, data, horas) VALUES ('$nome', '$tel', '$cel', '$email', '$plano', '$prof', '$data', '$horas')");
if($inserir == ''){
echo "<script language='javascript'>
window.alert('Ocorreu um erro ao Agendar sua Avaliação!');
</script>";
}else{
echo "<script language='javascript'>
window.alert('Avaliação Agendada com sucesso!');
</script>";
}}}}?>
____________________ Fim de Código ____________________________________________
Bem é isso, agradeço a atenção de todos, e ficarei grato por uma ajuda.

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

  • 0

Qual é o tipo do campo data? "date"(AAAA-MM-DD) ou "string"(DD/MM/AAAA).

Se for "date" você pode usar os sinais "<" ou ">" caso contrário você só poderá usar LIKE, NOT LIKE, = ou !=.

Lembre-se que a data retornada pelo formulário deve estar no mesmo formato que está escrito no banco para poder comparar.

O ideal é que você utilize o campo "date" dando possibilidade de consultas que realmente compare as datas porque utilizando "string" você deixará de utilizar bons recursos que o banco oferece nativamente.

Aliás no seu caso seria melhor usar um campo do tipo "datetime" assim você não precisaria usar o campo "horas"

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Markus Magnus,

estou tendo dificuldade para entender, o sinal de maior eu troco pelo LIKE ou = e o sinal de > pelo NOT LIKE ou !=, seria isso?
Pois ei tentei de todas as formas e não obtive sucesso, estou enviando o código para que você. possa ver como ficou com a ultima tentativa, ele broqueia qualquer tipo de cadastro.
Entre no endereço www.rfclinica.com.br verificar o que esta acontecendo.

Ele esta fazendo exatamente o que eu gostaria que fizesse quando a data cadastrada fosse uma anterior a data atual, porém ele esta bloqueando todas as data.

Código:

$sql = mysql_query("SELECT data FROM agendar WHERE data != '".$tempo."'"); // Assim não grava data alguma.
if(mysql_num_rows($sql)>=1){
Se você. puder apontar onde esta o erro ou mesmo fazer a correção te agradeço.
Murilo Cabral
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
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...