Ir para conteúdo

POWERED BY:

Arquivado

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

marcello.felipe

Calculo entre horas

Recommended Posts

Ola boa noite, tenho um sistema de estacionamento fucionando quase 100%
eu ja cadastro os veiculos, os cliente, edito, e removo.
isso tudo no banco de dados,
estou com um problema.. preciso calcular o tempo que o cliente ficou no estacionamento, sei que so eu pegar a hora_saida - hora_entrada...
tipow eu ja consiguir, fazer o codigo, que so de digitar a placa,
o sistema me mostra os dados
Nome:marcelo
Hora de entrada:10:00:22
data de entrada:03/12/2013
data de saida:
hora saida:
preço:

agora o que ta faltando, e eu prencher a data_saida, hora_saida, fazer o calculo e retorna o preço... se alguem puder me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Marcello,

 

Ao que entendi, você está utilizando duas colunas para armazenar as informações de entrada, e mais duas colunas para as de saída.

Utilizando apenas as colunas de horários para os cálculos, você terá problemas para calcular no caso de "virada de dia".

Sugiro armazenar em uma coluna do tipo DATETIME (que armazena a data e hora), pois já corrigiria este eventual problema, e ainda facilitaria permitindo utilizar funções nativas do MySQL :)

 

Nas duas situações (na estrutura atual, e com a coluna do tipo DATETIME) você pode utilizar a seguinte consulta com o TIMEDIFF do MySQL:

 

SELECT TIMEDIFF(hora_saida, hora_entrada) resultado

FROM tabela
Apenas para ilustrar, veja como sairá o resultado:
-> SELECT TIMEDIFF( '10:15:00', '09:00:00' ) resultado
FROM tabela

-> '01:15:00'

 

Espero ter ajudado, e caso ainda tenha dúvidas, só chamar!

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Ranjer, deu pra te entender porém, ontem depois que postei este topico, me veio outro problema, que preciso resolver antes, de calcular.. por exemplo

eu ja consigo gravar e busca os dados no banco, usando este codigo.

if($cadastrar){
$sql_gravar_telacontrole = "INSERT INTO telacontrole ( nome, dataentrada, horae, placa, datasaida, horas , preco ) VALUES ('$nome' ,'$dataentrada' , '$horae', '$placa' , '$datasaida', '$horas', '$preco')";
mysql_query($sql_gravar_telacontrole) or die ("nao foi Possivel inserir");
header('Location:index.php');
}
else{
$sql = mysql_query("SELECT * FROM telacontrole WHERE placa = '$placa' ") or die ("error");
$row = mysql_fetch_row($sql);
}

blz, o problema, e qando eu busco no banco os dados, ele vem prechido apenas:

Nome:marcelo

data de entrada:03/12/2013

hora de entrada:10:43

placa:HCB-****

os capos

data de saida:

hora saida:

preco:

Nao pode vim prechido, por que , o cliente chega, e eu cadastro os dados de entrada dele, so depois quando ele for sair, que vou cadastrar os dados de saida,, e retorna o preço... pensando sobre isso. ontem eu fiz assim:

 

criei um Botao "Atualizar dados" com o seguinte codigo:

if($atualizar){
$sql_atualizar = mysql_query( "UPDATE telacontrole SET datasaida='$datasaida , horas='$horas WHERE id='$id'")or die("Nao foi Possivel Atualizar");
}

so que esta dando o erro("Nao foi possivel atualizar") quando clico pra atualiar ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu criaria 2 tabelas.

 

Uma para os dados do cliente (nome, carro, placa, cor, etc);

Uma para os dias que ele vai ao estacionamento (hora chegada, hora saida, etc)

Sobre seus erros, toma cuidado com as aspas simples, feche elas.

Mas indico criar 2 tabelas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alvaro, aqui compreto..

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tela de Controle</title>
</head>
<?php
include "css.php";
?>
<body>
<div id="geral_conteudo">
<?php
include "menu.php";
?>
<?php
include"css.php";
include"conexao.php";
$nome = $_POST['nome'];
$dataentrada = $_POST['dataentrada'];
$horae = $_POST['horae'];
$placa = $_POST['placa'];
$datasaida = $_POST['datasaida'];
$horas = $_POST['horas'];
$preco = $_POST['preco'];
$cadastrar = $_POST['cad'];
$alterar = $_POST['alt'];
$calcular = $_POST['cal'];
$atualizar = $_POST['atu'];

if($cadastrar){
$sql_gravar_telacontrole = "INSERT INTO telacontrole ( nome, dataentrada, horae, placa, datasaida, horas , preco ) VALUES ('$nome' ,'$dataentrada' , '$horae', '$placa' , '$datasaida', '$horas', '$preco')";
mysql_query($sql_gravar_telacontrole) or die ("nao foi Possivel inserir");
header('Location:index.php');
}
else{
$sql = mysql_query("SELECT * FROM telacontrole WHERE placa = '$placa' ") or die ("error");
$row = mysql_fetch_row($sql);
}
if($atualizar){
$sql_atualizar = mysql_query("UPDATE telacontrole SET datasaida='$datasaida , horas='$horas")or die("Nao foi Possivel Atualizar");
}



/*if($calcular){
$sql = mysql_query("SELECT * FROM telacontrole WHERE horae ='$horae'")or die ("erro");
$row = mysql_fetch_row($sql);

echo("$row[5]");
}
*/

?>

<div id="box_right">
<form name="signup" method="post" action="index.php?pagina=teladecontrole">
<div class="boxtela"><h1>Dados do Cliente<? echo" $placa" ?></h1>
<label><span>Nome:</span> <input type="text" class="input_text" name="nome" id="nome" value="<? echo"$row[1]" ?>" /></label>
<label><span>Data Entrada:</span> <input type="text" class="input_text" name="dataentrada" id"dataentrada" value="<? echo"$row[2]" ?>" /></label>
<label><span>Hora:</span> <input type="text" class="input_text" name="horae" id"horae" value="<? echo"$row[3]" ?>" /></label>
<label><span>Placa:</span><input type="text" class="input_text" name="placa" id="placa" value="<? echo"$row[4]" ?>"/></label>
<label><span>Data Saida:</span><input type="text" class="input_text" name="datasaida" id"datasaida" value="<? echo"$row[5]"?>"/></label>
<label><span>Hora:</span><input type="text" class="input_text" name="horas" id"horas" value="<? echo"$row[6]"?>"/></label>
<label><span>Preço:</span><input type="text" class="input_text" name="preco" id="preco" /></label>
<label><input type="submit" class="button" value="Cadastrar" name="cad"/> <input type="submit" class="button" value="Busca-Placa" name="alt"/> <input type="submit" class="button" value="Imprimir"/> <input type="submit" class="button" value="calcular" name="cal"/> <input type="submit" class="button" value="Atualizar" name="atu"</label></label>

</div>
</div>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como já disse e você ignorou, feche as aspas. O seu ta assim:

if($atualizar){
    $sql_atualizar = mysql_query("UPDATE telacontrole SET datasaida='$datasaida , horas='$horas")or die("Nao foi Possivel Atualizar");    
}

Feche as aspas simples e coloque o WHERE para saber qual é o cadastro que precisa ser atualizado, para isso você precisa criar um campo ID no MYSQL que identifica cada cliente:

 

if($atualizar){
    $sql_atualizar = mysql_query("UPDATE telacontrole SET datasaida='$datasaida' , horas='$horas' WHERE id='$id'")or die("Nao foi Possivel Atualizar");    
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, nao sei como vou fazer pega o ID ..... Acabei de corrigir um erro no cagido tinha esquecido de fechar o </input> mas.. mesmo quando clico em atualizar, ele so carrega a pagina.. e na da nda.. ....

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tela de Controle</title>
</head>
<?php
include "css.php"; 
?>
<body>
<div id="geral_conteudo">
<?php
include "menu.php"; 
?>
<?php
include"conexao.php";
$nome         = $_POST['nome'];
$dataentrada  = $_POST['dataentrada'];
$horae        = $_POST['horae'];
$placa        = $_POST['placa'];
$datasaida    = $_POST['datasaida'];
$horas        = $_POST['horas'];
$preco        = $_POST['preco'];
$cadastrar    = $_POST['cad'];
$alterar      = $_POST['alt'];
$calcular     = $_POST['cal'];
$atualizar    = $_POST['atu'];

if($cadastrar){
	$sql_gravar_telacontrole = "INSERT INTO telacontrole ( nome, dataentrada, horae, placa, datasaida, horas , preco ) 			    VALUES ('$nome' ,'$dataentrada' , '$horae', '$placa' , '$datasaida', '$horas', '$preco')";
	mysql_query($sql_gravar_telacontrole) or die ("nao foi Possivel inserir");
	header('Location:index.php');
}
else{
	$sql = mysql_query("SELECT * FROM telacontrole WHERE placa = '$placa' ") or die ("error");
    $row = mysql_fetch_row($sql);		
}
if($atualizar){
	$sql_atualizar = ("UPDADE telacontrole  SET datasaida='$datasaida' , horas='$horas' WHERE id='$id' ") or die ("error");	
}
?>
<div id="box_right">
<form name="signup" method="post" action="index.php?pagina=teladecontrole">
<div class="boxtela"><h1>Dados do Cliente<? echo" $placa" ?></h1>
<label><span>Nome:</span> <input type="text"  class="input_text" name="nome"  id="nome"  value="<? echo"$row[1]" ?>" /></label> 
<label><span>Data Entrada:</span> <input type="text" class="input_text"  name="dataentrada" id"dataentrada" value="<? echo"$row[2]" ?>" /></label>
<label><span>Hora:</span> <input type="text"  class="input_text" name="horae" id"horae" value="<? echo"$row[3]" ?>" /></label>
<label><span>Placa:</span><input type="text" class="input_text" name="placa" id="placa" value="<? echo"$row[4]" ?>"/></label>
<label><span>Data Saida:</span><input type="text" class="input_text" name="datasaida" id"datasaida" value="<? echo"$row[5]"?>"/></label>
<label><span>Hora:</span><input type="text" class="input_text" name="horas" id"horas" value="<? echo"$row[6]"?>"/></label>
<label><span>Preço:</span><input type="text" class="input_text" name="preco" id="preco" /></label>
<label><input type="submit" class="button" value="Cadastrar" name="cad"/> <input type="submit" class="button" value="Busca-Placa" name="alt"/> <input type="submit" class="button" value="Imprimir"/> <input type="submit" class="button" value="calcular" name="cal"/> <input type="submit" class="button" value="Atualizar" name="atu"</label></label>
</div>
</div>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá:

No MYSQL crie um campo chamado id, coloque ele como INT e AUTO INCREMENT. Quando um cliente for cadastrado automaticamente vai ser gerado um ID pra ele.

Ai no seu form coloque um input hidden que recebe o valor desse id também, além do nome e etc...

Ai quando for atualizar pegue este ID.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu criaria 2 tabelas.

 

Uma para os dados do cliente (nome, carro, placa, cor, etc);

Uma para os dias que ele vai ao estacionamento (hora chegada, hora saida, etc)

 

Sobre seus erros, toma cuidado com as aspas simples, feche elas.

 

Mas indico criar 2 tabelas.

 

Na bem da verdade aqui se tem 3 Entidades distintas: O Estacionamento, caracterizado pelo registro de entradas e saídas, os clientes e seus carros, logo melhor que duas seriam três tabelas.

 

Dessa forma seria possível manter os dados do cliente uma única vez e associar à ele tantos carros quantos eles tivessem sem duplicar informações e garantindo a integridade dos dados.

 

My two cents...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Bruno, melhor ainda.

Mas o problema que ele enfrenta é com os IDs

<input type="hidden"  class="input_text" name="qual"  id="qual"  value="<? echo"$row[posição do campo id]" ?>" />

Mas você ta precisando dar uma estudada, sem querer ser chato....

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.