Ir para conteúdo

POWERED BY:

Arquivado

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

.JoaoVitor.

PHP + MySQL

Recommended Posts

Estou fazendo um jogo e não sou "expert" em PH e tenho uma dúvida.

 

Por exemplo o usuário vai pro hospital e deve ficar internado por um período de 2 horas.

Como eu posso inserir isso no banco de dados, e fazer com que o mesmo regresse as 2 horas (7200 segundos)

e assim que zerar o tempo, eu crio uma funçao tipo:

 

$temposql = ("SELECT * FROM hospital WHERE user = '$_SESSION[nome]'");

$tempo = mysql_fetch_array($temposql);

 

if($tempo['tempo'] == 0){ <!-- não sei como é feito o tempo no mysql, entao simulei como '0' --!>

echo "liberado...";

}else{

echo "Você ainda está internado. Faltam:" . $tempo[tempo] . "horas/minutos para você ser liberado";

}

 

espero que entendam, se tiverem duvida sobre minha pergunta, falem ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai precisar de uma tabela 'internacoes', contendo o ID do usuário e a hora em que ele foi internado.

Depois disso, você seleciona esse campo de hora (melhor que seja data e hora) e faz a comparação.

Isso aqui vai te ajudar nessa comparação:

:seta: http://www.php.net/manual/en/book.datetime.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o Henrique disse acima, você tem que relacionar esse usuário em uma tabela 'internações', relacionamento de banco de dados. (Só googlar).

 

Outra coisa interessante é que, você quer rodar esse código sozinho ? Se sim, terá que utilizar o Contrab(agendador de tarefas for windows), para rodar um script automaticamente a cada 15 minutos, e buscar no banco os campos menor que 2 horas e automaticamente zerar o mesmo.

 

Com relação a selecionar o registro, tem uma outra opção que é selecionar na própria instrução SQL, seria algo assim:

 $qry = mysql_query("
                   SELECT 
                     COUNT(*) AS qtd  
                   FROM hospital_internacao 
                   WHERE data_internacao <= DATE_SUB(NOW(), INTERVAL 2 HOUR) AND user_id = {VALOR}
               ");
 $res = mysql_fetch_array($qry);

 if( $res['qtd'] > 0 )
 {
     // Executa o bloco aqui
 }
 else
 {
     // Executa o bloco aqui
 }

 

Ps.: Não sei como é a lógica se você está zerando os registros que já tem, ou se registra a saída do hospital, dependendo o caso tem que usar um BETWEEN na instrução :thumbsup:

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.