Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

iFull

Se o cadastro de nome estiver + de 1hr ser excluido e cadastrar d novo

Recommended Posts

Olá pessoal quero pedir a ajuda pra solucionar uma duvida, sei o basico em php e mysql.

 

Preciso de uma ajudinha em "começar" uma consulta e exclusão simples porem usa data e essa parte não manjo muito e não achei aqui no forum. Não consigo fazer isso:

 

Se ricardo está cadastrado no banco de dados as 22h ele não pode se cadastrar de novo antes das 23h.

E se passou das 23h, Seria excluido na hora que ele fosse cadastrar de novo.

 

Alguém pode me ajudar a entender como fazer isso ?

 

Agradeço desde já. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Digamos que eu uso POG entao vamos la eu faria mais ou menos assim

 

Um campo gravaria a data e outro campo gravaria a hora

 

Vou usar a seguinte ganbiarra concatenando a hora

 

se agora sao 22:47 daqui a uma hora ou seja 23:47 poderia me cadastrar de novo

entao se eu tirar os dois pontos ficaria 2247 e 2347 note que a diferença entre um e outro é de apenas 100 sabendo disso

vamos programar

 

digamos que fosse assim:

 

1 - consulta simples retornando dados daquele nick

2 - se existir vamos tirar a diferença entre horas concatenadas

3 - excluir o cadastro e faz um novo insert

 

// isso vai me retornar quando o nome que ira ser cadastrado for igual a um
// ja existente no banco de dados
$user = mysql_query('SELECT * FROM usuario WHERE user_nome = user_nome');

//como eu preciso de apenas um cadastro não vou usar while
$dados = mysql_fetch_array($user);

//agora vou pegar a hora do cadastro
$horacadastro = $dados['campo_hora_cadastro'];

// vou diminuir pela atual
$horaatual = date('hm');
 
//subtrai
$diferenca = $horaatial - horacadastro;

 if ($diferenca >= 100) {
 //monta query para e excluir em seguida veja se exclui com if e insira os dados
 }else{
 //monta query para inserir um novo
  }

essa gambiarra bem adaptada ao seu código acredito que funcionaria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não da executando corretamente o script, não cadastra etc... poderiam me ajudar ?

 

<?php
mysql_connect('localhost','root','') or die(mysql_error());
#seleciona o banco de dados
mysql_select_db('nomes') or die(mysql_error());

$_POST[nomet];
$nome = $_POST[nomet];

$user = mysql_query('SELECT * FROM nome WHERE nome = nome');
$dados = mysql_fetch_array($user);
$horacadastro = $dados['data'];
$horaatual = date('hm'); 
$diferenca = $horaatual - $horacadastro; 
if ( $diferenca >= 100 ){
 $query_delete = mysql_query("DELETE FROM nome WHERE nome='$nome' ");
 }
else
{ $sql="INSERT INTO nomes (nome, data)
VALUES
('$_POST[nomet]','now()')";

}
if($nome_enviado == true)
		echo "<script>window.location.href = 'index.php';
</script>";
	elseif($cpf_enviado == false)
		echo ("<script> alert('Seu tempo de espera ainda não expirou, volte em alguns minutos, lembre-se que o tempo de espera para proxima tentativa é de 45 minutos. Obrigado !'); </script>");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom vamos por parte ta bem erradinho ai mesmo.

 

Pra selecionar o DB voce precisa do link de conexao assim

 

$user = 'root';
$servidor = 'localhost';
$senha = '';
$basededados = 'NomedaBase';

$con = mysql_connect($servidor,$user,$senha);
mysql_select_db($basededados,$con);

 

E esse post nao tem por que receber ele antes puro

 

$_POST[nomet]; // <--- elimine isso
$nome = $_POST[nomet];

 

O seu select ta sem a variavel $nome

 


//o seu ta assim
$user = mysql_query('SELECT * FROM nome WHERE nome = nome');

//como pode ser nome = nome ?????

$user = mysql_query("SELECT * FROM nome WHERE nome = $nome");

 

 

Evite usar aspas simples onde tem que colocar variavel pois '$variavel' o servidor retorna $variavel já "$variavel" o servidor retorna o valor da variavel.

 

O seu insert ta falando tabela "nomes", como eu pude novar sua tabela chama "nome" e nao "nomes". a propostivo inverta coloque a hora ja cadastrada menos a hora atual, pois a cadastrada sera sempre maior ou menor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Digamos que eu uso POG entao vamos la eu faria mais ou menos assim

 

Um campo gravaria a data e outro campo gravaria a hora

 

Vou usar a seguinte ganbiarra concatenando a hora

 

se agora sao 22:47 daqui a uma hora ou seja 23:47 poderia me cadastrar de novo

entao se eu tirar os dois pontos ficaria 2247 e 2347 note que a diferença entre um e outro é de apenas 100 sabendo disso

vamos programar

 

e se a pessoa se cadastrar as 23:14, a próxima hora seria 00:14, a diferença de 2314 - 14 = 2300

 

Nao vejo a necessidade de um campo cadastrar a hora, e o outro a data... Se você usar datetime na tabela do mysql, a data e hora ficarão juntas.

 

Acredito que o certo seria usar o date_diff

 

http://php.net/manual/pt_BR/function.date-diff.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso um campo pra data outro pra hora pois existem coisas que eu preciso fazer com uma e com outra e pra evitar ter que escrever mais código ou trata-las eu faço isso. E sobre não ver por que usar eu vejo quando resolve meu caso, até que depois eu procuro uma melhor solução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não vai cara ;/

 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque suas aspas simples por aspas duplas. Verifique todos os campos da sua query com calma como eu disse tinha muita coisa errada em questao de digitação coisas simples.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso um campo pra data outro pra hora pois existem coisas que eu preciso fazer com uma e com outra e pra evitar ter que escrever mais código ou trata-las eu faço isso. E sobre não ver por que usar eu vejo quando resolve meu caso, até que depois eu procuro uma melhor solução.

 

Eu prefiro achar a melhor solução o quanto antes. Quando eu programo, antes de finalizar o código, eu procuro por vários exemplos, e tento achar a melhor opção. Na minha opinião colocar qualquer coisa, ver se funciona, e corrigir depois é péssimo

 

Agora pelo que entendi, separar data e hora, em dois campos na tabela é horrível. O php oferece 1KKK de solução para manipular data/strings, e isso não é problema nenhum para programadores de qualquer nível.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, to pra refazer, mas queria algo simples porque a solução é simples, só não consigo desenvolver o código porque não manjo muito de if, timestamp etc... ;/ só sei o básico por enquanto mesmo...

 

mas seria assim,

 

no BD teria 2 campos, "nome e hora".

 

Quando apertar "Enviar" -> Consulta se existe-> Se existe a mais de 1 hora. Será deletado e cadastra novamente automático.

 

Quando apertar "Enviar" -> Consulta se existe -> Se existe a menos de 1 hora não cadastra e exibe o tempo restante para cadastrar de novo.

 

O difícil ta eu desenvolver sem dar erro, pedi ajuda pra um amigo mas ele ta muito ocupado e não pode me ajudar ;S

 

Se alguém se dispor a me ajudar eu agradeço ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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