Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Capturar hora actual y actualizarlo en base de datos.

Estas en el tema de Capturar hora actual y actualizarlo en base de datos. en el foro de PHP en Foros del Web. Hola, por favor me puede decir alguien como puedo capturar la hora en tiempo real y despues hacer un update en la base de datos? ...
  #1 (permalink)  
Antiguo 08/05/2013, 13:26
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Capturar hora actual y actualizarlo en base de datos.

Hola, por favor me puede decir alguien como puedo capturar la hora en tiempo real y despues hacer un update en la base de datos?

Así pongo la hora actual en el input hora_salida:

Código PHP:
Ver original
  1. <body onload="HoraActual()">
  2. <script language="JavaScript">
  3. function HoraActual(){
  4. var esteMomento = new Date();
  5. var hora = esteMomento.getHours();
  6. if(hora < 10) hora = '0' + hora;
  7. var minuto = esteMomento.getMinutes();
  8. if(minuto < 10) minuto = '0' + minuto;
  9. var segundo = esteMomento.getSeconds();
  10. if(segundo < 10) segundo = '0' + segundo;
  11. HoraCompleta= hora + " : " + minuto + " : " + segundo;
  12. document.form3.hora_salida.value = HoraCompleta;
  13. setTimeout("HoraActual()",1000)
  14. }
  15. </script>


Este es el formulario que al parar el contador hace el update:

Código Javascript:
Ver original
  1. <!---------------------------------Temporizador iniciado----------------------------------------------------------------->
  2.  
  3.                                           <div id="div_1" >
  4.    <?php do { ?>                                        
  5.          <form action="<?php echo $editFormAction; ?>" method="post" name="form3" id="form3">
  6.                            
  7.  
  8.    
  9.                                    
  10.  <input type="text" name="hora_salida" value=""  size="32" />///Este es el de la hora/////
  11.                                    
  12.                        
  13.                  <input type="hidden" name="id_contador" value="<?php echo $row_Recordset4['id_contador']; ?>" />
  14.  
  15. <?php
  16.  
  17. $fecha1 = strtotime($row_Recordset4['hora_entrada']);
  18. $fecha2 = strtotime($row_Recordset4['hora_salida']);
  19.  
  20. $diferencia_minutos = ($fecha2-$fecha1)/60;
  21.  
  22. ?>
  23. <ul data-role="listview" data-divider-theme="b" data-inset="true">
  24.                                
  25.  
  26.  
  27.     <li data-role="list-divider" role="heading">[<?php echo $row_Recordset1['tecnico']; ?>]</li>
  28.   <li data-role="list-divider" role="heading"><?php echo $row_Recordset4['fecha']; ?></li><li data-theme="c">
  29.    
  30.     De <?php echo $row_Recordset4['hora_entrada']; ?> a <?php echo $row_Recordset4['hora_salida']; ?><span class="ui-li-count"><?php echo $diferencia_minutos  ?>&nbsp;minutos</span>
  31.    
  32.  <li data-role="list-divider" role="heading">El contador de tiempo se ha parado <?php echo $row_Recordset4['fecha']; ?> a las <?php echo $row_Recordset4['hora_salida']; ?> con nº<?php echo $row_Recordset4['id_contador']; ?><br/></li>
  33.    
  34.   </li>
  35.   <input type="hidden" name="MM_update" value="form3" />
  36.                          
  37.                          
  38.   <button type="submit" data-icon="custom" id="form3btn"  data-theme="c" data-ajax="false">Para contador</button>
  39.                          
  40.                                                            
  41.                                                            
  42.   <?php } while ($row_Recordset4 = mysql_fetch_assoc($Recordset4)); ?>
  43.          
  44.                                   </ul>  
  45.                        
  46.                         </form>
  47.                         </div>                      
  48.  <!-----------------------------Fin Temporizador iniciado----------------------------------------------------------------->


y este el update:

Código Javascript:
Ver original
  1. if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form3")) {
  2.   $updateSQL = sprintf("UPDATE contador_avisos SET hora_salida=%s WHERE id_contador=%s",
  3.                        GetSQLValueString($_POST['hora_salida'], "date"),
  4.                        GetSQLValueString($_POST['id_contador'], "int"));
  5.  
  6.   mysql_select_db($database_conexion, $conexion);
  7.   $Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());
  8. }

Gracias
  #2 (permalink)  
Antiguo 08/05/2013, 13:43
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Capturar hora actual y actualizarlo en base de datos.

éstas obteniendo la hora del cliente, lo mejor es obtener la del servidor, ya sea con SQL NOW() o con PHP y sus variadas funciones disponibles.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 08/05/2013, 13:53
 
Fecha de Ingreso: abril-2005
Ubicación: Piura - Perú
Mensajes: 189
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: Capturar hora actual y actualizarlo en base de datos.

Es bueno que mires los siguientes links, para guiarte en el uso de fechas y hora

http://www.w3schools.com/php/php_ref_date.asp
http://www.w3schools.com/php/func_date_strftime.asp
http://lachabela.wordpress.com/2012/...p-y-setlocale/
  #4 (permalink)  
Antiguo 08/05/2013, 14:08
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Capturar hora actual y actualizarlo en base de datos.

Gracias a los dos, pero el problema es que me he liado con el código.
  #5 (permalink)  
Antiguo 08/05/2013, 14:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Capturar hora actual y actualizarlo en base de datos.

Pues explica con detalle lo que te sucede, leer código no nos sirve de nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 08/05/2013, 14:26
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Capturar hora actual y actualizarlo en base de datos.

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues explica con detalle lo que te sucede, leer código no nos sirve de nada.
Aquí están los códigos. Lo que quiero hacer es un contador de tiempo ocultando los div e ingresando los datos en bd.
http://www.forosdelweb.com/f179/para...boton-1050426/
Gracias
  #7 (permalink)  
Antiguo 08/05/2013, 16:31
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Capturar hora actual y actualizarlo en base de datos.

El firebug me da un error:

Código PHP:
TypeErrordocument.form3.hora_salida is undefined
document
.form3.hora_salida.value HoraCompleta
  #8 (permalink)  
Antiguo 08/05/2013, 17:17
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Capturar hora actual y actualizarlo en base de datos.

Ya no me da el error, pero cuando actualiza el campo hora_salida en la base de datos pone con 00:00:00:



id_contador id_aviso fecha hora_salida hora_entrada
133 3705 2013-05-09 00:00:00 00:55:56



Y sin embargo por post me esta mandando la hora bien:

PostRespuestaHTMLParámetrosapplication/x-www-form-urlencoded
MM_update
form3 hora_salida 00 : 57 : 33
id_contador 133
Fuente hora_salida=00+%3A+57+%3A+33&id_contador=133&MM_up date=form3




El input es este:

Código PHP:
<input type="text" name="hora_salida" value=""  size="32" /> 
El update es:

Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form3")) {
  
$updateSQL sprintf("UPDATE contador_avisos SET hora_salida=%s WHERE id_contador=%s",
                       
GetSQLValueString($_POST['hora_salida'], "date"),
                       
GetSQLValueString($_POST['id_contador'], "int"));

  
mysql_select_db($database_conexion$conexion);
  
$Result1 mysql_query($updateSQL$conexion) or die(mysql_error());

  #9 (permalink)  
Antiguo 09/05/2013, 12:47
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Capturar hora actual y actualizarlo en base de datos.

Cita:
Iniciado por satjaen Ver Mensaje
Ya no me da el error, pero cuando actualiza el campo hora_salida en la base de datos pone con 00:00:00:



id_contador id_aviso fecha hora_salida hora_entrada
133 3705 2013-05-09 00:00:00 00:55:56



Y sin embargo por post me esta mandando la hora bien:

PostRespuestaHTMLParámetrosapplication/x-www-form-urlencoded
MM_update
form3 hora_salida 00 : 57 : 33
id_contador 133
Fuente hora_salida=00+%3A+57+%3A+33&id_contador=133&MM_up date=form3




El input es este:

Código PHP:
<input type="text" name="hora_salida" value=""  size="32" /> 
El update es:

Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form3")) {
  
$updateSQL sprintf("UPDATE contador_avisos SET hora_salida=%s WHERE id_contador=%s",
                       
GetSQLValueString($_POST['hora_salida'], "date"),
                       
GetSQLValueString($_POST['id_contador'], "int"));

  
mysql_select_db($database_conexion$conexion);
  
$Result1 mysql_query($updateSQL$conexion) or die(mysql_error());

El problema lo tengo en la variable id_contador que no le paso el valor del input del formulario y por eso no actualiza la hora_salida. Por favor me podeis decir como puedo pasar el valor de id_contador al $updateSQL que se encuentra en el mismo código?

Este es el form:

Código PHP:
<form action="<?php echo $editFormAction?>" method="post" name="form3">
    
                        
                 <input type="hidden" name="id_contador" value="<?php echo $row_Recordset4['id_contador']; ?>" />

<input type="hidden" name="MM_update" value="form3" />
                          
                          
  <button type="submit" data-icon="custom" id="form3btn"  data-theme="c" data-ajax="false">Para contador</button>
</form>
Y este el update:

Código PHP:
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form3")) {
  
$updateSQL sprintf("UPDATE contador_avisos SET hora_salida=now() WHERE id_contador=%s",
                       
GetSQLValueString($_POST['hora_salida'], "date"),
                       
GetSQLValueString($_POST['id_contador'], "int"));

  
mysql_select_db($database_conexion$conexion);
  
$Result1 mysql_query($updateSQL$conexion) or die(mysql_error());

Muchas gracias
  #10 (permalink)  
Antiguo 09/05/2013, 14:34
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Capturar hora actual y actualizarlo en base de datos.

Por favor, lo estoy intentando así pero no funciona:
Código PHP:
if ((isset($_POST["MM_update"])) &&isset($_POST["id_contador"]) && ($_POST["MM_update"] == "form3")) {
  
$updateSQL sprintf("UPDATE contador_avisos SET hora_salida=now() WHERE id_contador='".$id_contador."'",
                       
GetSQLValueString($_POST['hora_salida'], "date"),
                       
GetSQLValueString($_POST['id_contador'], "int"));

  
mysql_select_db($database_conexion$conexion);
  
$Result1 mysql_query($updateSQL$conexion) or die(mysql_error());

Gracias
  #11 (permalink)  
Antiguo 09/05/2013, 15:08
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Capturar hora actual y actualizarlo en base de datos.

Ok, a vosotros os parecera facil pero a los que estamos aprendiendo nos cuesta mucho. Pongo la solución para los mios. De todas formas muchas gracias porque otras veces me respondeis correctamente.

Código PHP:
Ver original
  1. if ((isset($_POST["MM_update"])) &&isset($_POST["id_contador"]) && ($_POST["MM_update"] == "form3")) {
  2.   $updateSQL = sprintf("UPDATE contador_avisos SET hora_salida=now() WHERE id_contador='".$_POST['id_contador']."'",
  3.                        GetSQLValueString($_POST['hora_salida'], "date"),
  4.                        GetSQLValueString($_POST['id_contador'], "int"));
  5.  
  6.   mysql_select_db($database_conexion, $conexion);
  7.   $Result1 = mysql_query($updateSQL, $conexion) or die(mysql_error());
  8. }

Un saludo

Etiquetas: actual, formulario, mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:30.