Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Deseo hacer sumatoria de las horas que calcula el Bucle (https://www.clubdelphi.com/foros/showthread.php?t=77938)

georkis 07-03-2012 17:31:02

Deseo hacer sumatoria de las horas que calcula el Bucle
 
Código PHP:

<?php
$server
='localhost';
$username='root';
$pass='konter';
$db='usuario';

if(!
$conn=@mysql_connect($server$username$pass)){
    echo 
'Error al conectarse con MySQL';
}
if(!@
mysql_select_db($db$conn)){
echo 
'Error al seleccionar la base de datos';
}

$sql="SELECT 
  cast(reg_serv.fecha_final as time) AS Hora_salida,
  cast(reg_serv.fecha_inicio as time) AS Hora_entrada
  
FROM
  reg_serv
  "
;
 if(!
$result=@mysql_query($sql$conn)){
     echo 
'Error en la consulta';
     }
 
$row=mysql_fetch_array($result);
?>
<table>
<tr>
    <td>Resultado</td>
    
</tr>
<?php

do { ?>
 <tr>
     
     <td><?php echo $total=date("H:i:s"strtotime("00:00:00") + strtotime($row['Hora_salida']) - strtotime($row['Hora_entrada'])); ?></td>
     
 </tr>
<?php }while($row=mysql_fetch_array($result)); ?>
</table>
Total horas:<?php  // poner el total ?>
<?php
mysql_free_result
($result);
?>


ecfisa 07-03-2012 20:04:02

Hola georkis.

Por favor cuando incluyas código en tus mensajes utiliza etiquetas para darle mayor legibilidad (ya las agregué al tuyo).

Una imágen explicativa de su uso:



Saludos y gracias por tu colaboración.

georkis 07-03-2012 20:44:01

Hola de nuevo... incorporé la function array_sum();
 
Código PHP:

<?php
$server
='localhost';
$username='root';
$pass='konter';
$db='usuario';

if(!
$conn=@mysql_connect($server$username$pass)){
    echo 
'Error al conectarse con MySQL';
}
if(!@
mysql_select_db($db$conn)){
echo 
'Error al seleccionar la base de datos';
}

$sql="SELECT
  cast(reg_serv.fecha_final as time) AS Hora_salida,
  cast(reg_serv.fecha_inicio as time) AS Hora_entrada
  
FROM
  reg_serv
  "
;
 if(!
$result=@mysql_query($sql$conn)){
     echo 
'Error en la consulta';
     }
 
$row=mysql_fetch_array($result);
?>

<table>
<tr>
<td>Resultado</td>

</tr>
Código PHP:

<?php

do { 
$total_cantidad=array ();
$total_cantidad[]=$row['Hora_salida'];

?>

<tr>

<td>
Código PHP:

<?php echo $totaldate("H:i:s"strtotime("00:00:00") + strtotime($row['Hora_salida']) - strtotime($row['Hora_entrada'])); ?>

Código PHP:

<?php $total= array(date("H:i:s"strtotime("00:00:00") + strtotime($row['Hora_salida']) - strtotime($row['Hora_entrada']))); ?>

</td>

</tr>
Código PHP:

<?php }while($row=mysql_fetch_array($result)); ?>

</table>
Total horas:<?php echo array_sum($total); ?>
Código PHP:

<?php
mysql_free_result
($result);
?>


georkis 08-03-2012 17:55:41

jajaja... tengo otra manera...
 
Código SQL [-]
SELECT 
  SUBTIME( cast(reg_serv.fecha_final as TIME ),
  cast(reg_serv.fecha_inicio as TIME)) AS Hora_entrada
FROM
  reg_serv

Con esto me evito los calculos que hace el bucle... ahora me falta la sumatoria.... así que lo que hice me resta las horas y deseo la totalidad de las horas de usuarios en la instalación eso es todo... espero terminar pronto... estoy avanzando... si alguien me quiere aportar otra idea.... o solucionar....

georkis 08-03-2012 20:44:52

Resuelto...
 
La consulta anterior la guarde y cree otra que me suma el total... el código es este:
Código SQL [-]
SELECT 
  sec_to_time(sum(time_to_sec(por_hora_fecha.hora_usada))) AS Total_hora
FROM
  por_hora_fecha

Pero hay un problemita... el MySQL tiene que ejecutar la primera consulta y restar la fecha salida y entrada y luego la segunda hace la sumatoria... lo que quiero que desde PHP, me sume el total de hora de la primera consulta que esta guardada.

Mi primera consulta esta:
Código SQL [-]
SELECT 
  subtime(cast(reg_serv.fecha_final as time), cast(reg_serv.fecha_inicio as time)) AS hora_usada
FROM
  reg_serv
Quisiera que fuera desde PHP para evitar la lentitud de gestión de datos... imaginate que son 100 usuarios conectados... mysql volcaooooooo de memoria.... no se si estoy en un error... por favor que alguien me ayude... ah, este trabajo consiste en una estadistica de control de usuarios por servicios PC... (Internet, correo, juegos, etc)... gracias


La franja horaria es GMT +2. Ahora son las 19:40:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi