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

Bueno pues despues de horas y horas y quebraderos de cabeza ya lo tengo!!

Escribo el código final por si a alguien le hiciera falta algo parecido:

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.'" ORDER BY fecha';
/* 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="75%" border="1" >';
echo '<tr>'; //fila
echo '<td width="25%"><center><p><b><font color="#000000">Fecha</font></b></p></center></td>';
echo '<td width="25%"><center><p><b><font color="#000000">Ficha</font></b></p></center></td>';
echo '<td width="25%"><center><p><b><font color="#000000">Hora</font></b></p></center></td>';
echo '<td width="25%"><center><p><b><font color="#000000">Total Horas trabajadas Dia</font></b></p></center></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="25%" valign="top"><center>';
echo $fecha;
echo '</center></td>';
echo '<td width="25%" valign="top"><center>';
echo $entr_sal;
echo '</center></td>';
echo '<td width="25%" valign="top"><center>';
echo $hora;
echo '</center></td>';
echo '<td width="25%" valign="top"><center>';
//echo $d; resultados 0,1,2,3,4 ok
$cont=$d+1; // Esta variable la utilizaremos para acceder a la siguiente fila.

if ($entr_sal == "Entrada") //si es Entrada paso a mirar la siguiente fila
//compruebo que la fecha de la siguiente fila sea la misma.
//de ser así tomo sus valores.

{
$fecha_dia_sig = $fila[$cont]["fecha"]; //fecha de siguiente fila

if ($fecha_dia_sig == $fecha) /*si la fecha de la siguiente fila es igual al de la fila que estamos
cogemos la hora y la paso a la funcion.*/
{
$ent_sal_sig = $fila[$cont]["entrada_salida"]; //valor Entrada_Salida siguiente fila.

$hora_dia_sig = $fila[$cont]["hora"]; //hora siguiente fila.
$hora1 = $hora;
$hora2 = $hora_dia_sig;
$horatotal = dif($hora2,$hora1);
echo $horatotal;
echo " horas";

}// fin de IF que comprueba que las fechas sean iguales.
else
{ //si la fecha del dia no es igual, significa que ese dia no ficho la salida
// ya que si un dia ficha la entrada ese dia solo puede volver a fichar la salida o no fichar.
echo "Este dia NO Fichastes la Salida!";
}

}

echo '</center></td></tr>';
} // fin for;
echo '</table>';
echo '</center>';

mysql_close();
}
?>
Ahora sólo mejorarlo visualmente y se acabó!!

Un saludo.