Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/10/2008, 08:26
alfredorz
 
Fecha de Ingreso: junio-2008
Mensajes: 56
Antigüedad: 15 años, 11 meses
Puntos: 1
Ayuda con aplicación, problemas en array

Hola a tod@s, estoy haciendo una funcionalidad a mi aplicación que me calcule las horas trabajadas de cada dia.

Cuando el usuario ficha, se guarda en una base de datos el usuario, la ip, la fecha, la hora y otra columna que guarda si es entrada o salida. Es decir, la base de datos queda asi: Fichaje( usuario, ip, fecha, hora, entrada_salida).

He echo una función que me calcula el primer dia de la semana. A partir de hago una consulta que me devuelve la fecha, la hora, si entrada o salida, hasta el dia de hoy. Lo guardo en un array y lo muestro en una tabla.

LO QUE QUISIERA HACER es coger de ese array las filas (2 filas como mucho, ya que del mismo dia solo puede fichar entrada y salida) con la misma fecha, y me reste a la hora de salida la de entrada.

Tengo creada una función para restar dos horas.

Recorro con un FOR el array entero para ir leyendo los datos y mostrarselos en una tabla. Y a partir de aqui me he quedado pillado para coger las dos horas.

Os muestro el código que lo veréis mejor:

Cita:
<?php
session_start();
include("configuracion.php");
if ($_SESSION['login'] == "" ) {

header("Location: index.php");
die(); // no sigo ejecutando la restante parte del script
}

include("primerdia.php");
include("restahoras.php");
$bbdd = mysql_connect($host, $usuario, $password) or die ("Could not connect: " . mysql_error()); //conectamos con base de datos.
$tablausuario = mysql_select_db($bd, $bbdd) or die(mysql_error());//seleccionamos base de datos fichaje de nuestra base de datos.
if (bbdd){
$cons_dias = 'select fecha,hora,entrada_salida from fichaje where user="'.$_SESSION[login].'" AND fecha >= "'.$primer_dia.'" ';
/* seleccionamos de la base de datos los datos que necesitaremos que serán la fecha, hora y la entrada o salida del usuario
registrado donde los registros que cogeremos sera el primer dia de la semana y los posteriores*/
//echo $cons_dias;
$respuesta = mysql_query($cons_dias, $bbdd) or die(mysql_error());; //ejecutamos la consulta.
$filas = mysql_num_rows($respuesta); //número de filas guardadas
echo '<br>';
/*echo 'Filas encontradas: ';
echo $filas;
echo '<br>';
*/
// Guardamos resultado en un array
$c=0;
while($fila[$c] = mysql_fetch_array($respuesta))
{
$c+=1;
$fecha = $fila[$c]["fecha"];
$hora = $fila[$c]["hora"];
$in_out = $fila[$c]["entrada_salida"];

}
/*echo "Arry respuesta:<br>";
print_r($fila); // muestro lo que tengo almacenado en el array.
*/

// Trabajamos con el Array
echo '<center>';
echo '<table width="50%" border="1" >';
echo '<tr>'; //fila
echo '<td width="40%" align="center"><p><b><font color="#000000">Fecha</font></b></p></td>';
echo '<td width="30%"align="center"><p><b><font color="#000000">Ficha</font></b></p></td>';
echo '<td width="30%"align="center"><p><b><font color="#000000">Hora</font></b></p></td></tr>';
for($d=0; $d<$c; $d++){
$fecha = $fila[$d]["fecha"];
$entr_sal = $fila[$d]["entrada_salida"];
$hora = $fila[$d]["hora"];
echo '<tr>';
echo '<td width="40%" valign="top" align="center" >';
echo $fecha;
echo '</td>';
echo '<td width="30%" valign="top" align="center" >';
echo $entr_sal;
echo '</td>';
echo '<td width="30%" valign="top" align="center" >';
echo $hora;
echo '</td></tr>';
} /* En este bucle es donde no se qué tengo
que hacer para coger las dos variables, o si tengo que hacer otro tipo
de bucle dentro de él mismo, o hacerlo fuera de él
*/
echo '</table>';
echo '</center>';
mysql_close();
}
?>
Me encantaría que me ayudárais ya que seguro que vosotros habréis conseguido hacer cosas del estilo y mucho más.

Un saludo y gracias.