RodrigoGomes Postado Fevereiro 1, 2007 Denunciar Share Postado Fevereiro 1, 2007 bom, rss.. a pergunta é bem simples.. mais é só pra ter certeza.. :D eu tava a fazer um script que apaga-se uma cosia em 7 dias (uma semana), e isso seria feito em segundos, dai me bateu uma dúvida!7 dias tem 86400 segundos correto? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 1, 2007 Denunciar Share Postado Fevereiro 1, 2007 Como é que é? Como você chegou a esse número... ele está errado, 1 dia tem 86400 (60x60x24), 7 dias têm 604800 segundos (60x60x24x7). Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Fevereiro 2, 2007 Autor Denunciar Share Postado Fevereiro 2, 2007 Como é que é? Como você chegou a esse número... ele está errado, 1 dia tem 86400 (60x60x24), 7 dias têm 604800 segundos (60x60x24x7).hehehe, é eu já sabia que tinha errado em alguma coisa.. :D vlw.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Fevereiro 2, 2007 Autor Denunciar Share Postado Fevereiro 2, 2007 amigo to presisando de uma sugestão..eu to achando essa parada de segundos muito extenssa.. o script faz o seguinte, ele apagaria algo na sql em uma semana, como se tivesse agendado, teria como eu fazer isso usando a data invés de segundos?$timeoutseconds = 604800; $timestamp=time(); $timeout=$timestamp-$timeoutseconds; mysql_query("DELETE FROM tabela WHERE timestamp<$timeout") or die("DELETE ERRO"); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 2, 2007 Denunciar Share Postado Fevereiro 2, 2007 Se você tiver as datas no banco de dados... calcule quantos dias para 7 dias e use na SQL, para calcular 7 dias:$a = 60*60*24*7; $data = date("Y-m-d",time() +$a);//Para subtrair 7 dias use -$a Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Fevereiro 6, 2007 Autor Denunciar Share Postado Fevereiro 6, 2007 Se você tiver as datas no banco de dados... calcule quantos dias para 7 dias e use na SQL, para calcular 7 dias:$a = 60*60*24*7; $data = date("Y-m-d",time() +$a);//Para subtrair 7 dias use -$aNão deu muito certo.. :unsure: $a = 60*60*24*7;$data = date("Y-m-d",time() -$a);mysql_query("DELETE FROM confirmation WHERE data<$data") or die(mysql_error());na parte DATA tem um valor: 2007-01-30e ele não apaga... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Fevereiro 6, 2007 Denunciar Share Postado Fevereiro 6, 2007 Tente assim: $data = date("Y-m-d", (time() - $a)); []'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 6, 2007 Denunciar Share Postado Fevereiro 6, 2007 Coloque $data entre apóstrofos dentro da query... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Fevereiro 6, 2007 Autor Denunciar Share Postado Fevereiro 6, 2007 eu coloquei$a = 60*60*24*7;$data = date("Y-m-d", (time() - $a));mysql_query("DELETE FROM confirmation WHERE data<'$data'") or die(mysql_error());e continua não apagando.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 6, 2007 Denunciar Share Postado Fevereiro 6, 2007 Tem certeza que o nome da coluna é data? E que o formato da data é Unix? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Fevereiro 6, 2007 Autor Denunciar Share Postado Fevereiro 6, 2007 (editado) Tem certeza que o nome da coluna é data? E que o formato da data é Unix?sim. sim.. tenho..data2007-01-30id_membre varchar(40) utf8_general_ci Não pass varchar(100) utf8_general_ci Não mail varchar(100) utf8_general_ci Não nomeC varchar(100) utf8_general_ci Não pseudo varchar(100) utf8_general_ci Não sexe varchar(10) utf8_general_ci Não age varchar(11) utf8_general_ci Não pics varchar(60) utf8_general_ci Não lieu varchar(100) utf8_general_ci Não data varchar(10) utf8_general_ci Não Editado Fevereiro 6, 2007 por Vampyro Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 6, 2007 Denunciar Share Postado Fevereiro 6, 2007 Não funciona porque data é varchar(10) e não DATE como deveria ser... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Fevereiro 6, 2007 Autor Denunciar Share Postado Fevereiro 6, 2007 mudei para DATE e continua não apagando.. :blink: dê uma olhada no script completo.. e me diz se pode ser ele:<? $id = $_GET['id']; include 'part/config.php'; $a = 60*60*24*7; $data = date("Y-m-d", (time() - $a)); mysql_query("DELETE FROM confirmation WHERE data<'$data'") or die(mysql_error()); $user_req = mysql_query("SELECT * from confirmation WHERE id_membre=\"$id\"") or die(mysql_error()); if(mysql_num_rows($user_req)==0) { echo"A confirmação do seu cadastro já expirou, por favor cadastre-se novamente"; } else { while($user_data = mysql_fetch_assoc($user_req)) { if(!empty($user_data)) { $sessid = $user_data['id_membre']; $nome = $user_data['pseudo']; $email = $user_data['mail']; $senha = $user_data['pass']; $nomeC = $user_data['nomeC']; $cidade = $user_data['lieu']; $perf = $user_data['sexe']; $age = $user_data['age']; $img = $user_data['pics']; $log = $user_data['login']; $date = date('d-m-Y'); $verificar = mysql_query("SELECT * FROM users WHERE pseudo='$nome'"); $verificar = mysql_num_rows($verificar); $verificar1 = mysql_query("SELECT * FROM users WHERE mail='$email'"); $verificar1 = mysql_num_rows($verificar1); $verificar2 = mysql_query("SELECT * FROM users WHERE id_membre='$sessid'"); $verificar2 = mysql_num_rows($verificar2); if ($verificar != "0") { echo"O nick-name já foi registrado anteriormente"; } elseif ($verificar1 != "0") { echo"O E-mail já foi registrado anteriormente"; } elseif ($verificar2 != "0") { echo"Ocorreu um erro interno no servidor ao tentar registrar sua conta."; } else { $requete26=mysql_query("INSERT INTO users(id_membre,login,pass,pseudo,mail,sexe,age,lieu,pics,nomeC,data,ip) VALUES('$sessid','$log','$senha','$nome','$email','$perf','$age','$cidade','$img','$nomeC','$date','$uip')") or die(mysql_error()); mysql_query("DELETE FROM confirmation WHERE id_membre=\"$sessid\"") or die(mysql_error()); echo"ok, cadastro confirmado"; } } } } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Fevereiro 6, 2007 Denunciar Share Postado Fevereiro 6, 2007 Acabei de testar a idéia que passei em um sistema que eu tenho e a resposta foi 100% perfeita, o que pode estar acontecendo é que pelo fato de você ter mudado de um campo que armazena string para um de data, o MySQL ter se perdido, você talvez terá que redigitar as datas no front-end. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodrigoGomes Postado Fevereiro 7, 2007 Autor Denunciar Share Postado Fevereiro 7, 2007 tem razão.. =)agora funciono perfeitamente..obg... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
RodrigoGomes
bom, rss.. a pergunta é bem simples.. mais é só pra ter certeza.. :D
eu tava a fazer um script que apaga-se uma cosia em 7 dias (uma semana), e isso seria feito em segundos, dai me bateu uma dúvida!
7 dias tem 86400 segundos correto?
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados
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.