elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  temporizador
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: temporizador  (Leído 2,967 veces)
kakashi20


Desconectado Desconectado

Mensajes: 435


Ver Perfil
temporizador
« en: 15 Marzo 2012, 17:37 pm »

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


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: temporizador
« Respuesta #1 en: 15 Marzo 2012, 19:31 pm »

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
  1. <?php
  2. $db_usuario = 'root'; // Usuario db
  3. $db_password = ''; // Contraseña db
  4. $db_host = 'localhost'; // Servidor db
  5. $db_nombre = 'dm_tiempo'; // Nombre db
  6.  
  7.  
  8. // Iniciamos la conexion a la base de datos o mostramos error.
  9. $handle = mysql_connect($db_host,$db_usuario,$db_password) or die('No se ha podido establecer la conexion');
  10. // Selecionamos la base de datos o mostramos error
  11. mysql_select_db($db_nombre,$handle) or die(mysql_error());
  12.  
  13. // Comprobamos que el boton "iniciar" se ha clickeado
  14. if(!empty($_POST['iniciarn'])){
  15.  
  16. // Si el nombre no esta definido lo definimos
  17. // sino, lo limpiamos por si acaso.
  18. if(empty($_POST['nombre'])){$nombre = 'nodefinido';}
  19. else {$nombre = mysql_real_escape_string($_POST['nombre'],$handle);}
  20.  
  21. // Hacemos el query
  22. $query = "INSERT INTO dm_tiempo (usuario,inicio) VALUES ('".$nombre."','".time()."')";
  23. // Ejecutamos el query
  24. mysql_query($query);
  25. echo 'Usuario insertado.';
  26. }
  27.  
  28. // Si enviamos el comando "parar" y el id del usuario..
  29. if(!empty($_GET['parar']) && !empty($_GET['id'])){
  30.  
  31. // Limpiamos el id por si acaso
  32. $id = (int)$_GET['id'];
  33.  
  34. // Hacemos el query
  35. $query = "UPDATE dm_tiempo SET fin='".time()."' WHERE id='".$id."'";
  36. // Ejecutamos el query
  37. mysql_query($query);
  38.  
  39. echo 'Usuario parado.';
  40. }
  41. ?>
  42.  
  43. <html>
  44. <head>
  45. <title>Tiempos</title>
  46. </head>
  47. <body>
  48. <h1>Iniciar un nuevo usuario</h1>
  49. <form action="" method="POST">
  50. <input type="text" name="nombre" value="" />
  51. <input type="submit" value="Iniciar" name="iniciarn" />
  52. </form>
  53. <hr />
  54. <h1>Lista de usuarios</h1>
  55. <table border="1">
  56. <tr><th>id</th><th>Nombre</th><th>Inicio</th><th>Fin</th><th>Parar</th></tr>
  57. <?php
  58. // Hacemos el query
  59. $query = 'SELECT id,usuario,inicio,fin FROM dm_tiempo';
  60.  
  61. // Ejecutamos query
  62. $resultado = mysql_query($query);
  63.  
  64. // Por cada resultado, mostramos una fila
  65. while($row = mysql_fetch_array($resultado)){
  66.  
  67. // Comprobamos si ha sido finalizado (en caso de que si
  68. // calculamos la diferencia).
  69. if($row['fin']>0){
  70. $tiempo = $row['inicio'] - $row['fin'];
  71. // Horas
  72. $tiempototal = $tiempo / (60*60);
  73. // Valor absoluto + quitar decimales
  74. $tiempototal = floor(abs($tiempototal));
  75. }
  76. else {$tiempototal = 'No finalizado.';}
  77.  
  78. // Imprimimos fila y celdas ID y Nombre.
  79. echo '<tr><td>'.$row['id'].'</td><td>'.htmlentities($row['usuario'],ENT_QUOTES).'</td>';
  80.  
  81. // Imprimimos celda Inicio y Fin
  82. // date('d/m/Y h:i:s) = fecha (dia/mes/año hora:minutos:segundos)
  83. echo '<td>'.date('d/m/Y h:i:s',$row['inicio']).'</td><td>'.$tiempototal.' horas</td>';
  84.  
  85. // Damos la posibilidad de pararlo.
  86. echo '<td><a href="?parar=1&id='.$row['id'].'" title"Parar">Parar</a></td>';
  87.  
  88. // Finalizamos fila
  89. echo '</tr>';
  90. }
  91.  
  92. ?>
  93.  
  94. </body>
  95. </html>

 :xD

Saludos


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Temporizador
Programación C/C++
Bledniss 4 5,194 Último mensaje 29 Abril 2011, 03:39 am
por Destro-
Temporizador en C
Programación C/C++
PeKiN 2 5,681 Último mensaje 9 Junio 2011, 21:51 pm
por PeKiN
Duda con temporizador en C++ « 1 2 »
Programación C/C++
SrCooper 17 13,960 Último mensaje 7 Julio 2013, 12:29 pm
por SrCooper
Temporizador javascript
Scripting
Daklon 1 3,465 Último mensaje 2 Agosto 2013, 18:31 pm
por Almapa
[Python] Establecer un temporizador
Scripting
elmoyer 1 4,007 Último mensaje 28 Octubre 2013, 15:20 pm
por 0x5d
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines