Menú Principal

temporizador

Iniciado por kakashi20, 15 Marzo 2012, 17:37 PM

0 Miembros y 1 Visitante están viendo este tema.

kakashi20

hola

Estoy en proceso de hacer un sistema que me calcule el tiempo de estadía en una habitación de un hotel.

La idea es que cuando alguien entra a la habitación le de clic a un botón en php de inicio y cuando salga la persona le de clic al botón finalizar ( o puede ser el mismo botón ) y me muestre el tiempo que duro la persona en la habitación.

pues esa es la idea.

No se como hacerlo.

alguien me podría ayudar ????

Muchas Gracias

#!drvy

Es bastante sencillo si se tiene una minima idea de PHP y MySql.. incluso se puede hacer sin base de datos..

Lo que haria yo seria:

Una base de datos, con 1 tabla (dm_tiempo).
Dicha tabla contendra 4 filas (id,usuario,inicio,fin).

Cuando haga click en el boton "Inicio", el PHP insertara en la base de datos el usuario + un timestamp del inicio.

Cuando haga click en el boton "Finalizar", PHP sacara el inicio de la base de datos,  y lo restara del tiempo actual. El resultado sera el tiempo que ha estado.

Llevandolo a la practica..
Código (php) [Seleccionar]
<?php
$db_usuario 
'root'// Usuario db
$db_password ''// Contraseña db
$db_host 'localhost'// Servidor db
$db_nombre 'dm_tiempo'// Nombre db


// Iniciamos la conexion a la base de datos o mostramos error.
$handle mysql_connect($db_host,$db_usuario,$db_password) or die('No se ha podido establecer la conexion');
// Selecionamos la base de datos o mostramos error
mysql_select_db($db_nombre,$handle) or die(mysql_error());

// Comprobamos que el boton "iniciar" se ha clickeado
if(!empty($_POST['iniciarn'])){

// Si el nombre no esta definido lo definimos
// sino, lo limpiamos por si acaso.
if(empty($_POST['nombre'])){$nombre 'nodefinido';}
else {$nombre mysql_real_escape_string($_POST['nombre'],$handle);}

// Hacemos el query
$query "INSERT INTO dm_tiempo (usuario,inicio) VALUES ('".$nombre."','".time()."')";
// Ejecutamos el query
mysql_query($query);
echo 'Usuario insertado.';
}

// Si enviamos el comando "parar" y el id del usuario..
if(!empty($_GET['parar']) && !empty($_GET['id'])){

// Limpiamos el id por si acaso
$id = (int)$_GET['id'];

// Hacemos el query
$query "UPDATE dm_tiempo SET fin='".time()."' WHERE id='".$id."'";
// Ejecutamos el query
mysql_query($query);

echo 'Usuario parado.';
}
?>


<html>
<head>
<title>Tiempos</title>
</head>
<body>
<h1>Iniciar un nuevo usuario</h1>
<form action="" method="POST">
<input type="text" name="nombre" value="" />
<input type="submit" value="Iniciar" name="iniciarn" />
</form>
<hr />
<h1>Lista de usuarios</h1>
<table border="1">
<tr><th>id</th><th>Nombre</th><th>Inicio</th><th>Fin</th><th>Parar</th></tr>
<?php
// Hacemos el query
$query 'SELECT id,usuario,inicio,fin FROM dm_tiempo';

// Ejecutamos query
$resultado mysql_query($query);

// Por cada resultado, mostramos una fila
while($row mysql_fetch_array($resultado)){

// Comprobamos si ha sido finalizado (en caso de que si
// calculamos la diferencia).
if($row['fin']>0){
$tiempo $row['inicio'] - $row['fin'];
// Horas
$tiempototal $tiempo / (60*60);
// Valor absoluto + quitar decimales
$tiempototal floor(abs($tiempototal));
}
else {$tiempototal 'No finalizado.';}

// Imprimimos fila y celdas ID y Nombre.
echo '<tr><td>'.$row['id'].'</td><td>'.htmlentities($row['usuario'],ENT_QUOTES).'</td>';

// Imprimimos celda Inicio y Fin
// date('d/m/Y h:i:s) = fecha (dia/mes/año hora:minutos:segundos)
echo '<td>'.date('d/m/Y h:i:s',$row['inicio']).'</td><td>'.$tiempototal.' horas</td>';

// Damos la posibilidad de pararlo.
echo '<td><a href="?parar=1&id='.$row['id'].'" title"Parar">Parar</a></td>';

// Finalizamos fila
echo '</tr>';
}

?>


</body>
</html>


:xD

Saludos