Ver Mensaje Individual
  #8 (permalink)  
Antiguo 15/10/2008, 09:26
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

CORRIJO: me cortaba porque tenia otra variable c.

Escribo codigo completo:
Cita:
$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="25%" align="center"><p><b><font color="#000000">Fecha</font></b></p></td>';
echo '<td width="25%"align="center"><p><b><font color="#000000">Ficha</font></b></p></td>';
echo '<td width="25%"align="center"><p><b><font color="#000000">Hora</font></b></p></td>';
echo '<td width="25%"align="center"><p><b><font color="#000000">Total</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="25%" valign="top" align="center" >';
echo $fecha;
echo '</td>';
echo '<td width="25%" valign="top" align="center" >';
echo $entr_sal;
echo '</td>';
echo '<td width="25%" valign="top" align="center" >';
echo $hora;
echo '</td>';
echo '<td width="25%" valign="top" align="center" >';
//echo $d; resultados 0,1,2,3,4
$cont=$d+1;
//echo $cont; resultados 1,2,3,4,5
if ($entr_sal = "Entrada") //si es Entrada paso a mirar la siguiente fila
//compruebo que la ficha 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 es igual cojo la hora y la paso a la funcion.
{
$ent_sal_sig = $fila[$cont]["entrada_salida"]; //valor Entrada_Salida siguiente fila.
If ($entr_sal_sig = "Salida")
{$hora_dia_sig = $fila[$cont]["hora"]; //hora siguiente fila.
$hora1 = $hora;
$hora2 = $hora_dia_sig;
$horat = dif(hora2,hora1);
echo $fecha_dia_sig;
echo $horat; //hago tramas, sólo para comprobar...
echo $hora2;
echo $hora1;

}

}
else
{
echo "ese dia no fichastes salida";
}

}

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

mysql_close();
}
?>
Pero debe ser que no me está cogiendo bien la filas, mirad los resultados:
Cita:
Fecha


----fecha----------ficha--------hora-------$fecha_dia_sig-------resta---$hora2----$hora1
2008-10-13------ Entrada------ 15:16:54------ 2008-10-13--- 00:00:00 --- 15:17:17--- 15:16:54
2008-10-13------ Salida------ 15:17:17------ 2008-10-13--- 00:00:00--- 13:42:26--- 15:17:17
2008-10-14------ Entrada------ 13:42:26------ 2008-10-14--- 00:00:00--- 13:45:20 --- 13:42:26
2008-10-14----- Salida------ 13:45:20------ 2008-10-14--- 00:00:00 --- 16:50:12 --- 13:45:20
2008-10-15------ Entrada------ 16:50:12------ 2008-10-15--- 00:00:00 --- 16:50:12
Como veis las horas no las estoy cogiendo bien o algo está fallando, porque de diferentes dias no deberia coger valores de hora del dia siguiente para eso tengo el if ($fecha = $fecha_dia_sig) -- Me tiene que restar la hora de salida menos la hora de entrada de un mismo dia. Debo poner el resultado de horas trabajadas en ese dia, me da igual que sea en la fila de entrada o en la fila de salida.

Por favor necesito AYUDAAAAAA!!!