Foros del Web » Programando para Internet » PHP »

separar resultados por meses

Estas en el tema de separar resultados por meses en el foro de PHP en Foros del Web. hola, hay alguna forma limpia de separar los resultados de una agenda por meses? me explico: teniendo varias fechas en una BBDD, quisiera mostrarlas con ...
  #1 (permalink)  
Antiguo 21/12/2014, 15:04
 
Fecha de Ingreso: noviembre-2005
Mensajes: 44
Antigüedad: 18 años, 5 meses
Puntos: 0
separar resultados por meses

hola,

hay alguna forma limpia de separar los resultados de una agenda por meses?

me explico:

teniendo varias fechas en una BBDD, quisiera mostrarlas con la cabecera de su mes correspondiente.
P.Eje: si tengo 2 Diciembre, 31 Diciembre, 5 Enero, 7 Febrero, quisiera que quedara asi:

Diciembre
-2
-31

Enero
-5

Febrero
-7

un saludo y gracias
  #2 (permalink)  
Antiguo 21/12/2014, 15:12
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: separar resultados por meses

Supongo que usando MySQL puedes seleccionar registros por intervalos de fecha usando DATE_SUB.
__________________
(:
  #3 (permalink)  
Antiguo 24/12/2014, 04:14
 
Fecha de Ingreso: noviembre-2005
Mensajes: 44
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: separar resultados por meses

no he conseguido nada, no me queda muy claro. Podríais ponerme algún ejemplo sencillo? gracias
  #4 (permalink)  
Antiguo 24/12/2014, 05:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: separar resultados por meses

Tal vez... si posteas lo que has intentado.
No has puesto ni una linea de código, ni PHP, ni SQL. ¿Cómo se supone que sepamos por qué no te sale, o cómo lo estás intentando hacer?
Recuerda que las funciones telepáticas están desactivadas :P

Por otro lado, los temas de SQL son más del Foro de Bases de Datos que de este...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 24/12/2014, 06:10
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: separar resultados por meses

Group BY? o sea, si lo que deseas es agrupar...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #6 (permalink)  
Antiguo 24/12/2014, 10:25
Avatar de jose_php  
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 9 años, 11 meses
Puntos: 2
Respuesta: separar resultados por meses

Aqui programe un codigo para ti, espero te sirva de algo...

Código PHP:
Ver original
  1. <?php
  2.  
  3. $lista = array("2 Diciembre", "31 Diciembre", "5 Enero", "7 Febrero");
  4. for($i=0; $i<count($lista); $i++){
  5.     $items = explode(" ", $lista[$i]);
  6.     switch(strtolower($items[1])){
  7.         case "enero": $month = "1"; break;
  8.         case "febrero": $month = "2"; break;
  9.         case "marzo": $month = "3"; break;
  10.         case "abril": $month = "4"; break;
  11.         case "mayo": $month = "5"; break;
  12.         case "junio": $month = "6"; break;
  13.         case "julio": $month = "7"; break;
  14.         case "agosto": $month = "8"; break;
  15.         case "septiembre": $month = "9"; break;
  16.         case "octubre": $month = "10"; break;
  17.         case "noviembre": $month = "11"; break;
  18.         case "diciembre": $month = "12"; break;
  19.     }
  20.     $data[$month]["days"][$items[0]] = $items[0];
  21.     $data[$month]["month"] = $items[1]." (".$month.")";
  22. }
  23.  
  24. for($i=1; $i<=12; $i++){
  25.     if(isset($data[$i]['month'])){
  26.         echo "-".$data[$i]['month']."<br />";
  27.         for($j=1; $j<=31; $j++){
  28.             if(isset($data[$i]['days'][$j])){
  29.                 echo "-".$data[$i]['days'][$j]."<br />";
  30.             }
  31.         }
  32.         echo "<br />";
  33.     } else{
  34.         continue;
  35.     }
  36. }

saludos.
  #7 (permalink)  
Antiguo 24/12/2014, 12:12
 
Fecha de Ingreso: noviembre-2005
Mensajes: 44
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: separar resultados por meses

Cita:
Iniciado por jose_php Ver Mensaje
Aqui programe un codigo para ti, espero te sirva de algo...

Código PHP:
Ver original
  1. <?php
  2.  
  3. $lista = array("2 Diciembre", "31 Diciembre", "5 Enero", "7 Febrero");
  4. for($i=0; $i<count($lista); $i++){
  5.     $items = explode(" ", $lista[$i]);
  6.     switch(strtolower($items[1])){
  7.         case "enero": $month = "1"; break;
  8.         case "febrero": $month = "2"; break;
  9.         case "marzo": $month = "3"; break;
  10.         case "abril": $month = "4"; break;
  11.         case "mayo": $month = "5"; break;
  12.         case "junio": $month = "6"; break;
  13.         case "julio": $month = "7"; break;
  14.         case "agosto": $month = "8"; break;
  15.         case "septiembre": $month = "9"; break;
  16.         case "octubre": $month = "10"; break;
  17.         case "noviembre": $month = "11"; break;
  18.         case "diciembre": $month = "12"; break;
  19.     }
  20.     $data[$month]["days"][$items[0]] = $items[0];
  21.     $data[$month]["month"] = $items[1]." (".$month.")";
  22. }
  23.  
  24. for($i=1; $i<=12; $i++){
  25.     if(isset($data[$i]['month'])){
  26.         echo "-".$data[$i]['month']."<br />";
  27.         for($j=1; $j<=31; $j++){
  28.             if(isset($data[$i]['days'][$j])){
  29.                 echo "-".$data[$i]['days'][$j]."<br />";
  30.             }
  31.         }
  32.         echo "<br />";
  33.     } else{
  34.         continue;
  35.     }
  36. }

saludos.
gracias a todos por las respuestas!
el código que me has puesto es mas o menos lo que quiero, lo que pasa que también me lo tendría que ordenar por año; o sea, si tengo fechas de diciembre de 2014, y enero de 2015, y estamos en diciembre, primero tendrían que salir las que quedan de este año y luego las de 2015.

pero bueno, es darle una vuelta al código y a ver si lo consigo

muchísimas gracias!!!
  #8 (permalink)  
Antiguo 24/12/2014, 14:26
Avatar de jose_php  
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 9 años, 11 meses
Puntos: 2
Respuesta: separar resultados por meses

Hola si en caso eos estas jalando de una base de datos, puedes hacer el ORDER BY FECHA DESC o ASC dependiendo, el ejemplo que te puse es para un arreglo cualquiera.
  #9 (permalink)  
Antiguo 25/12/2014, 05:13
 
Fecha de Ingreso: noviembre-2005
Mensajes: 44
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: separar resultados por meses

hola,

al final lo he conseguido de una forma bastante sencilla

hago la consulta de fechas a la base de datos

Código:
while($row = mysql_fetch_array($result))
{
     	$cadenafecha=$row['fecha'];
     	$dia=substr($cadenafecha,0,2);  //los 2 primeros caracteres son el dia
     	$numeromes=substr($cadenafecha,3,2); //los cars 4 y 5 son el mes
     	if (substr($numeromes,0,1) == 0) $numeromes=substr($numeromes,1,1); //si tiene un 0 por delante se lo quitamos

     	$meses = array("","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");

        $mes=$meses[$numeromes];

                   if($mes!=$mesTemp) echo $mes."<br>";
                   $mesTemp=$mes;

                   echo $dia."<br>";
}
saludos

Etiquetas: fecha, meses, resultados
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 10:10.