Foros del Web » Programando para Internet » PHP »

Separar registros asociados a una FECHA

Estas en el tema de Separar registros asociados a una FECHA en el foro de PHP en Foros del Web. Muy buenas tardes amigos del foro, en especial a ZITAL y GUSTAV espero q se enciunetre por alli, bueno mi duda.çtengu una parte del un ...
  #1 (permalink)  
Antiguo 15/02/2012, 13:08
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 11 meses
Puntos: 1
Separar registros asociados a una FECHA

Muy buenas tardes amigos del foro, en especial a ZITAL y GUSTAV espero q se enciunetre por alli, bueno mi duda.çtengu una parte del un codigo en PHP q trato de comparar 2 fechas enter SI, es decir en una BD tengo un campo FECHA (YYYY-MM-DD) q va siendo introducida con formulario (DATApicker), por cada fecha esta asociada a otra tabla una cantidad de vaucher(num de recivo de deporito de un banco), esto quiere decir qe por ejemplo en una fecha:
02-02-2012 se procesaron 20 vauches(sus nmeros de deposito)
Espero q me alla explicado, el problema radica q cuando contruyo la tabla que genera el reporte a partir de este codigo:
Código PHP:
*******codigo con cabezera y lo demas
$catRegFechas
=0;
foreach(
$datosFecha as $datofecha ):
 
$catRegFechas=$catRegFechas 1;
if(
$fecha != $datofecha['Fechadeposito']['fecha']) {
          
          
            echo 
$catRegFechas." registro de ".$fecha;
          
              
$catRegFechas=0;
        } 
Me genera este tabla:


Si observa la flecha negra cuando imprime la fecha del 10-01-2012 no separa el 11-01-2012 y por consiguiente en el circulo se ve q me dice 12 registro para esa fecha (10-01-2012) cuando deberia darme (11 registros), y asi sucesivamente con las fechas al fina en nel bloque de fecha 11-01-2012 se repitev el caso cae 13-01-2012 y se corta la tabla dejando al fina ese fecha y comienza el bloque con el 13-01-2012

Lo ideal es que por cade fecha tenga su bloque correspondiente y ninguna fecha anterior o posterior dentro de ella, alguien me podria explicar q pasa con ese IF y !=
__________________
Miguel Padrón :cool:
  #2 (permalink)  
Antiguo 16/02/2012, 00:55
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Separar registros asociados a una FECHA

Comprueba tu código HTML, parece que la lógica es correcta pero con el código que posteas es imposible saberlo.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 16/02/2012, 07:01
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Separar registros asociados a una FECHA

Cita:
Iniciado por repara2 Ver Mensaje
Comprueba tu código HTML, parece que la lógica es correcta pero con el código que posteas es imposible saberlo.
Gracias repara2, te coloco en codigo completo:
Código PHP:
<table border='1' cellspacing="0" cellpadding="0" class="wide-table" >
<tr>
    <td>Fecha Deposito</td>
        <td>Vaucher / Monto</td>
    <td>Banco</td>
        <td>Cant- Vauche/Fecha</td>
    
</tr>
<?php 
$totdep2
=0;
$totdep=0;
$catRegFechas=0;

foreach(
$datosFecha as $datofecha ):
    
$catRegFechas=$catRegFechas 1;
        if(
$totdep==0) {
            
$fecha=$datofecha['Fechadeposito']['fecha'];
        }
$fecha_espa=date("d-m-Y",strtotime($datofecha['Fechadeposito']['fecha']));
    
?>
        <tr>
    <td><?php echo $fecha_espa;?></td>    
    <?php
        
        $depo
=$datofecha['Bauche'];
    
$monto=number_format($depo['monto'],2,',''.');
        echo 
"<td><table border='1' cellspacing='0' cellpadding='0'><tr><td style=' text-align: center;'>".$depo['num_bauche'].'</td><td style=" text-align: right;">'.$monto.'</td></tr></table>';
        
$totdep $totdep $depo['monto'];
        
$totdep2 += $depo['monto'];               
        
    
?>
    <td>
    <?php 
            
echo $datofecha['Banco']['agencia'];
    
?>
    </td>
        <td>
    <?php
//aqui es donde debe separar  para poder saber cuantos registro hay en una fecha en particular
        
if($fecha != $datofecha['Fechadeposito']['fecha']) {
            
$contar=count($depo['fechadeposito_id']);
            
//$catRegFechas=$catRegFechas-1;
            
echo $catRegFechas." registro de ".$fecha;
            
$catRegFechas=0;
        }
    
?>
    </td>
    </tr>
        <?php
//aqui es donde debe separar segun la fecha en bloque, para poder saber cuantos registro hay en una fecha en particular
        
if($fecha != $datofecha['Fechadeposito']['fecha']) {
            
$fecha=$datofecha['Fechadeposito']['fecha'];
            
            echo 
"<tr><td></td><td></td><td><b>SUBTOTAL=".number_format($totdep,2,',''.')." Bs.</b></td></tr>";
            
$totdep=0;
            
        }
endforeach;
        if(
$totdep>0) {
            echo 
"<tr><td></td><td></td><td><b>SUBTOTAL=".number_format($totdep,2,',''.')." Bs.<b></td></tr>";
        }
        if(
$totdep2>0) {
            echo 
"<tr><td></td><td></td><td><b>TOTAL=".number_format($totdep2,2,',''.')." Bs.</b></td></tr>";
        }

?>
</table>
Si observaron la imagen, este codigo genera la tabla muy bien solo, q cuando LLEGA A CAMBIAR DE FECHA SEGUN LA COMPARACION (!=) EL NO SEPARA CORRECTAMENTE LAS FECHAS, QUEDANDO UNA FECHA POSTERIOR EN EL BLOQUE ANTERIOR Y ASI SUCESIVAMENTE. que puedo hacer para resolver esto
__________________
Miguel Padrón :cool:
  #4 (permalink)  
Antiguo 16/02/2012, 08:34
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Separar registros asociados a una FECHA

Saludos!

Pienso que solo te faltaría realizar un ajuste en la validación de la fecha y es validar no con la posición actual de la fecha del foreach sino con la siguiente.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 16/02/2012, 09:04
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Separar registros asociados a una FECHA

Cita:
Iniciado por Nano_ Ver Mensaje
Saludos!

Pienso que solo te faltaría realizar un ajuste en la validación de la fecha y es validar no con la posición actual de la fecha del foreach sino con la siguiente.
Gracias Nano, al principio pense en esa solucion y lo intente colocando otra validacion para que sea la fecha correcta con su ID, lo coloque asi:

Código PHP:
if($fecha != $datofecha['Fechadeposito']['fecha'] and $fechaID!=$depo['fechadeposito_id']) {................lo demas 
pero no hace nada sigue igual, O NO ES ASI COMO TU ME SUGIERE
__________________
Miguel Padrón :cool:
  #6 (permalink)  
Antiguo 16/02/2012, 09:36
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Separar registros asociados a una FECHA

Saludos

Podrías hacer un print_r a $datosFecha y lo posteas
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #7 (permalink)  
Antiguo 16/02/2012, 09:45
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Separar registros asociados a una FECHA

Aqui va la salida:


Como puedes ver, la fecha 06-01-2012, deberia ser un bloque aparte, ya q es la unica fecha sola que esta, lastima q no puedo mostrarte las demas fechas para q vea que como por ejemplo la fecha 10-01-2012b al final cierra con 1101-2012 cuando deberia ser con 10-01-2012, es decir al fina de cada bloque cierra con la fecha siguiente y a la hora de contar los registros por fechas me da +1, espero q me orienten
__________________
Miguel Padrón :cool:
  #8 (permalink)  
Antiguo 16/02/2012, 10:07
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Separar registros asociados a una FECHA

puedes imprimir el $datosfecha??? pero como array solamente para ver lo que contiene....
  #9 (permalink)  
Antiguo 16/02/2012, 10:13
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: Separar registros asociados a una FECHA

Veamos, esta es tu lógica


Imprimimos cabecera
Bucle segun registros
· Imprimimos registro N
· Si registro ya impreso la fecha es distinta del n-1, imprimimos division de tabla
FIN bucle

¿Ves dónde está el fallo?
__________________
>> Eleazan's Source
>> @Eleazan
  #10 (permalink)  
Antiguo 16/02/2012, 10:15
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Separar registros asociados a una FECHA

algo que no me queda muy claro....
pero cuando estas incrementando el contador al inicio del foreach.... eso significa que... por cada vuelta va a contar uno.... aunque en el registro que este perado ya no sea el esperado...
segun yo.... ese contador deberia ir en el else del if.... para que cuente despues de comparar....
aunque igual creo que podrias postear... $datosfecha y $fecha... asumo que ese es un valor que le estas pasando ya sea por url o algo....

o no?

saludos
  #11 (permalink)  
Antiguo 16/02/2012, 10:17
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Separar registros asociados a una FECHA

Cita:
Iniciado por sicosis1 Ver Mensaje
puedes imprimir el $datosfecha??? pero como array solamente para ver lo que contiene....
Disculepn, entendi mal, aqui lo teienen:
Código PHP:
Array ( [0] => Array ( [Bauche] => Array ( [id] => 527 [fechadeposito_id] => 61 [banco_id] => [num_bauche] => 22011486 [monto] => 15 ) [Fechadeposito] => Array ( [id] => 61 [fecha] => 05-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [1] => Array ( [Bauche] => Array ( [id] => 528 [fechadeposito_id] => 61 [banco_id] => [num_bauche] => 22011485 [monto] => ) [Fechadeposito] => Array ( [id] => 61 [fecha] => 05-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [fechadeposito_id] => 75 [banco_id] => [num_bauche] => 19488297 [monto] => ) [Fechadeposito] => Array ( [id] => 75 [fecha] => 26-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A.um_bauche] => 18896021 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [227] => Array ( [Bauche] => Array ( [id] => 754 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 19888764 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [228] => Array ( [Bauche] => Array ( [id] => 762 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 19888789 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [229] => Array ( [Bauche] => Array ( [id] => 757 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 18896022 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [230] => Array ( [Bauche] => Array ( [id] => 760 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 18896056 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [231] => Array ( [Bauche] => Array ( [id] => 755 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 18896055 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [232] => Array ( [Bauche] => Array ( [id] => 763 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 19888782 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => ..... 

el array en muy largo
__________________
Miguel Padrón :cool:
  #12 (permalink)  
Antiguo 16/02/2012, 10:23
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: Separar registros asociados a una FECHA

Cita:
Iniciado por 8461277 Ver Mensaje
Disculepn, entendi mal, aqui lo teienen:
Código PHP:
Array ( [0] => Array ( [Bauche] => Array ( [id] => 527 [fechadeposito_id] => 61 [banco_id] => [num_bauche] => 22011486 [monto] => 15 ) [Fechadeposito] => Array ( [id] => 61 [fecha] => 05-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [1] => Array ( [Bauche] => Array ( [id] => 528 [fechadeposito_id] => 61 [banco_id] => [num_bauche] => 22011485 [monto] => ) [Fechadeposito] => Array ( [id] => 61 [fecha] => 05-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [fechadeposito_id] => 75 [banco_id] => [num_bauche] => 19488297 [monto] => ) [Fechadeposito] => Array ( [id] => 75 [fecha] => 26-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A.um_bauche] => 18896021 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [227] => Array ( [Bauche] => Array ( [id] => 754 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 19888764 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [228] => Array ( [Bauche] => Array ( [id] => 762 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 19888789 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [229] => Array ( [Bauche] => Array ( [id] => 757 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 18896022 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [230] => Array ( [Bauche] => Array ( [id] => 760 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 18896056 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [231] => Array ( [Bauche] => Array ( [id] => 755 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 18896055 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => 01910134712100000171 ) ) [232] => Array ( [Bauche] => Array ( [id] => 763 [fechadeposito_id] => 77 [banco_id] => [num_bauche] => 19888782 [monto] => ) [Fechadeposito] => Array ( [id] => 77 [fecha] => 30-01-2012 ) [Banco] => Array ( [id] => [tipo_cuenta] => Corriente [agencia] => Banco Nacional de Credito [cliente] => Agrpecuaria Rómulo Gallegos C.A. [num_cuenta] => ..... 

el array en muy largo
Haz esto:

Código PHP:
echo '<pre>';
print_r($datosfecha);
echo 
'</pre>'
Así queda algo más legible ;)

PD: Has leido lo q he dicho más arriba? o.O
__________________
>> Eleazan's Source
>> @Eleazan
  #13 (permalink)  
Antiguo 16/02/2012, 11:33
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Separar registros asociados a una FECHA

Gracias amigos Eleazan y sicosis1, ustedes me dieron algunas ideas, pero este fin de semana salgo de viaje, al regreso aplicar algunas cosas q me dieron ustedes, si lo soluciono lo posteare aqui para futuros programadores q tenga este mismo problemas, sino lo resulevo volvere por aqui tambien para ver si lo termionamos de resolver, bueno feliz carnavales saludos se le respeta


gracias, volvere pronto
__________________
Miguel Padrón :cool:
  #14 (permalink)  
Antiguo 16/02/2012, 14:03
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Separar registros asociados a una FECHA

jejeje... te esperaremos cuando vuelvas entonce....

xq tengo mis propios cachos a resolver
  #15 (permalink)  
Antiguo 22/02/2012, 08:31
Avatar de 8461277  
Fecha de Ingreso: diciembre-2002
Ubicación: san juan de los morros
Mensajes: 887
Antigüedad: 21 años, 11 meses
Puntos: 1
Respuesta: Separar registros asociados a una FECHA

SICOSIS1, buenos dias regrese de una merecidas vacaciones, trabaje un rato en casa pero la pase bien, resoilvi el codigo de la siguiente manera, gracias a ti y a los demas que estuvieron pendiente, aqui le dejo la soución:

Código PHP:
if($fecha != $datofecha['Fechadeposito']['fecha'] and $fechaID!=$depo['fechadeposito_id']) {
             echo 
"<font color='red'>".$catRegFechas."</font> VAUCHES de FECHA ".$fecha;
            
$fecha=$datofecha['Fechadeposito']['fecha'];
            
$catRegFechas=1;
        }else{
            
$catRegFechas=$catRegFechas 1;
          } 
sicosis1 tenia razon primero evaluo y despue incremento, a y el contador lo coloco a 1 en vez de 0, asi si me hace el conteo de cuantos registros (vauche) hay por cada fecha registrada

Mil gracias espero seguir contado con ustedes
__________________
Miguel Padrón :cool:

Etiquetas: asociados, fecha, formulario, registro, registros, tabla
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:45.