Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/06/2011, 10:48
Avatar de Markgus
Markgus
 
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: duda foreach en una consulta

hola abimaelrc pues en la consulta 1 saco los valores de la tabla,esa tabla tiene 2 campos (Entrada,Salida) de fecha que son timestamp, después divido esos campos para cambiarles la hora ejemplo si Entrada es 2011-06-06 08:15:23 la cambio por 2011-06-06 08:00:00

Código PHP:
$query "select * from tabla";
$result mysql_query($query) or die (mysql_error());

while (
$reg mysql_fetch_array($result)){
$Entrada $reg['Entrada'];
$Salida $reg['Salida'];

$fechaE strtotime($Entrada);
$fen1 date("Y",$fechaE);
$fen2 date("m",$fechaE);
$fen3 date("d",$fechaE);

$fechaEF $fen1."-".$fen2."-".$fen3;
$hInicio '08:00:00';
$inicio. = $fechaEF." ".$hInicio;

esto es porque después necesito esos valores para sacar una diferencia de minutos con el timestampdiff

Código MySQL:
Ver original
  1. SELECT TIMESTAMPDIFF(MINUTE,'2011-06-06 08:00:00','2011-06-06 08:15:23') as DifEntrada

por eso cambio lo que tengo en $reg['Entrada']; que en este ejemplo seria
2011-06-06 08:15:23 lo cambio a $inicio para que sea 2011-06-06 08:00:00
porque si lo dejara igual el resultado seria 0 y se compararía la misma fecha pero pues así la diferencia seria 15

y pues lo que necesito es hacer eso por cada registro, que se compare lo que tengo ahora en $inicio y $termina hice unas pruebas para ver si me imprima los valores convertidos fuera del while y si aparecen, me imprime la cantidad de registros cambiándoles la hora, comentaba esto
Cita:
/*
si imprimo fuera del while si me da los valores leei por aqui en un post que usara esto .= y funciono
*/
echo $inicio;
echo "<br/>";
echo $termina;
echo "<br/>";
pero al yo intentar usarlos en la consulta 2 pues no se como que no los agarra, pienso que es con un foreach o con arreglos, ahorita seguiré probando pero pues si me pueden ayudar o aclarar las cosas estaría muy agradecido


Código PHP:
$query2 "
SELECT W.*,DifEntrada+DifSalida as Total FROM
(
SELECT
Entrada,
TIMESTAMPDIFF(MINUTE,'$inicio',.Entrada) as DifEntrada,
Salida,
TIMESTAMPDIFF(MINUTE,Salida,'$termina')  as DifSalida,
Semana
FROM  tabla
) W
"

en resumen creo que seria de la consulta de arriba por cada registro hacer la comparación de la fecha con lo nuevos valores de $inicio y $termina
no se si me explico o confundo mas :S