Foros del Web » Programando para Internet » PHP »

Como puedo hacer esto????

Estas en el tema de Como puedo hacer esto???? en el foro de PHP en Foros del Web. Hola a todos, tengo el siguiente código con un juego de registros: <table width="80%" border="1"> <tr> <td colspan="8">Reporte de todas las Palms en Taller </td> ...
  #1 (permalink)  
Antiguo 02/02/2007, 08:41
 
Fecha de Ingreso: febrero-2006
Mensajes: 85
Antigüedad: 18 años, 2 meses
Puntos: 0
Como puedo hacer esto????

Hola a todos, tengo el siguiente código con un juego de registros:

<table width="80%" border="1">
<tr>
<td colspan="8">Reporte de todas las Palms en Taller </td>
</tr>
<tr>
<td>id_recep_eq</td>
<td>id_cliente</td>
<td>cliente</td>
<td>status</td>
<td>fecha</td>
<td>D&iacute;as en taller </td>
<td>T&eacute;cnico</td>
<td>servicio</td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_tpalmdetalle['id_recep_eq']; ?></td>
<td><?php echo $row_tpalmdetalle['id_cliente']; ?></td>
<td><?php echo $row_tpalmdetalle['cliente']; ?></td>
<td><?php echo $row_tpalmdetalle['status']; ?></td>
<td><?php echo $row_tpalmdetalle['fecha']; ?></td>
<td><?php
// fecha 1

$ano1=substr($row_tpalmdetalle['fecha'],0,4); //2007-01-05
$mes1=substr($row_tpalmdetalle['fecha'],5,7);
$dia1=substr($row_tpalmdetalle['fecha'],8);


$ano2=substr($hoy,0,4); //2007-01-05
$mes2=substr($hoy,5,7);
$dia2=substr($hoy,8);




//calculo timestam de las dos fechas
$timestamp1 = mktime(0,0,0,$mes1,$dia1,$ano1);
$timestamp2 = mktime(0,0,0,$mes2,$dia2,$ano2);

//resto a una fecha la otra
$segundos_diferencia = $timestamp1 - $timestamp2;
//echo $segundos_diferencia;

//convierto segundos en días
$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);

//obtengo el valor absoulto de los días (quito el posible signo negativo)
$dias_diferencia = abs($dias_diferencia);

//quito los decimales a los días de diferencia
$dias_diferencia = floor($dias_diferencia);

echo $dias_diferencia;


//echo $row_recepcionestodas['estado']; ?></td>
<td><?php echo $row_tpalmdetalle['tecnico']; ?></td>
<td><?php echo $row_tpalmdetalle['servicio']; ?></td>
</tr>
<?php } while ($row_tpalmdetalle = mysql_fetch_assoc($tpalmdetalle)); ?>
</table>


Lo cual me genera un reporte de articulos y los dias que tiene de atiguedad, se ve de esta manera:





El asuno qu genrando los días atiguead me han pedido otro reporte qu una tabla así:





Que en la celda que deiga entre 0 y tres dias me aparezca la cantidad de palms que existen en taller en ese intervalo d tiempo ( la tabla de arriba muestra 3. ( en la figura aparece el número 5 prque intenté haciendolo con
$num, pero no funiocno, montro todos los campor que hay en la tabla)

Mi pregunta es cómo puedo calcular la sumatoria de todas las palms que llevan entre 0 y 3 dias, asi como todas las otras celdas?

Porfa ayudenme, es muy importante que entregue esto hoy.

Desde ya muchas gracias
  #2 (permalink)  
Antiguo 02/02/2007, 08:52
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Como puedo hacer esto???? ayuda porfa

En que formato tienes la fecha en sql ?
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 02/02/2007, 08:53
 
Fecha de Ingreso: febrero-2006
Mensajes: 85
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Como puedo hacer esto???? ayuda porfa

la tengo en date
  #4 (permalink)  
Antiguo 02/02/2007, 09:22
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Como puedo hacer esto???? ayuda porfa

Usa DATEDIFF()
Te entrega la diferencia de dias de dos fechas dadas en dias.

Asi lo sacas directamente de mysql sin tener que hacer mas funciones
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 02/02/2007, 09:27
 
Fecha de Ingreso: febrero-2006
Mensajes: 85
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Como puedo hacer esto???? ayuda porfa

Muchas gracias, vamos a probar

Saludos
  #6 (permalink)  
Antiguo 02/02/2007, 09:33
 
Fecha de Ingreso: febrero-2006
Mensajes: 85
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Como puedo hacer esto???? ayuda porfa

Tengo otra duda, ayudame porfa.

Si la sintaxis s esta:

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
-> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
-> -31
¿Cómo lo hago desde PHP?

Lo tengo asi:

$sql2 ="SELECT DATEDIFF('fecha','hoy')";
$result=mysql_query($sql);
$num2=mysql_num_rows($result);
echo $num2;

pero me sigue danbd el mismo resultado.

Talves estoy haciendo algo mal, puedes hecharme una mano?

Gracias
  #7 (permalink)  
Antiguo 02/02/2007, 09:58
 
Fecha de Ingreso: febrero-2006
Mensajes: 85
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Como puedo hacer esto???? ayuda porfa

Hay algo que no comprendo. Lo que necvesito no es restar las fechas, ino calclar el numero de articulos que tienen la misma cantidad de dias en taller, Por ejemplo, cuantos tienen 3 dias, cuantos tienen 28 dias como aparece en la imagen.
El cálculo de fechas ya lo hice con mktime, y lo qe necesito es calcular (sumar) el numero de palms por ejemplo que tienen 1 dia en taller, y asi siscesivamente.

Porfasi alguien sabe como puedo hacerlo que me ayude.

Gracias
  #8 (permalink)  
Antiguo 02/02/2007, 10:43
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Como puedo hacer esto???? ayuda porfa

Mmm... sip... pero tu no tienes un script diario que vaya sumandole dias a tu bd... lo que tienes son fechas... por lo tanto debes trabajarlas para llegar a tu resultado esperado.

Por otro lado... estas sacando el numero total de datediff ($num2) y lo que debes hacer es tirar todo a un arreglo donde tendras las diferencias de dias:
Código PHP:
$sql2 ="SELECT DATEDIFF('fecha','hoy') dias";
$result=mysql_query($sql); 
$num2=mysql_num_rows($result); 
while(
$data mysql_fetch_array($result))
    
$difDias[$data['dias']] = $difDias[$data['dias']]+1;

Y luego si es de 0 a 3 dias pones en la celda esto:
Código PHP:
$difDias[0] + $difDias[1] + $difDias[2] + $difDias[3
Creo q podria ser una solucion. No he testeado pk toy en el trabajo.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #9 (permalink)  
Antiguo 02/02/2007, 11:00
 
Fecha de Ingreso: febrero-2006
Mensajes: 85
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Como puedo hacer esto???? ayuda porfa

Hola Marvin, mira, lo que estoy haciendo es tratar de calcular los articulos que se ingresaron en una determinada fecha.

La resta de las fechas lo hice en un repore detallado, eso no me generó problemas, pero lo que me genera problemas es contar cuantos registros se ingresaron en una determinada fecha. parece ilógico que generar un reporte asi se me complique tanto, pero así etoy.


Lo que tengo que hacer es que el programa me diga en esa celda cuantos registros se ingresaron entre 0 y tres dias pasados, me imagino que tendia que hacer alguna funcion qe calcule la fecha de hace tres dias hasta hoy.

La verdad es que el tiempo esta corriendo y me presionan acá y ya no se como hacerle para que esto funcione, con respecto al script anterior no entiendo mucho a que te refieres a poner

$difDias[0] + $difDias[1] + $difDias[2] + $difDias[3] e la celda, no me muestra nada, intente ponerle un echo y me envia un error.

Porfa si puedes ayudame.

Gracias
  #10 (permalink)  
Antiguo 02/02/2007, 14:24
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Como puedo hacer esto???? ayuda porfa

Te deje un mensaje privado.
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:13.