iFull 0 Denunciar post Postado Junho 30, 2013 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
srnalim 21 Denunciar post Postado Julho 1, 2013 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
iFull 0 Denunciar post Postado Julho 1, 2013 Cara, valeu, vou tentar fazer aqui, muito obrigado mesmo o// Compartilhar este post Link para o post Compartilhar em outros sites
iFull 0 Denunciar post Postado Julho 8, 2013 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
srnalim 21 Denunciar post Postado Julho 8, 2013 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
Samuel Gomes_148425 19 Denunciar post Postado Julho 8, 2013 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
srnalim 21 Denunciar post Postado Julho 8, 2013 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
iFull 0 Denunciar post Postado Julho 8, 2013 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
srnalim 21 Denunciar post Postado Julho 8, 2013 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
Samuel Gomes_148425 19 Denunciar post Postado Julho 8, 2013 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
iFull 0 Denunciar post Postado Julho 8, 2013 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