Foros del Web » Programando para Internet » PHP »

Ayuda: Formar calendario con php y mysql

Estas en el tema de Ayuda: Formar calendario con php y mysql en el foro de PHP en Foros del Web. Saludos queridos colegas jeje Alguien me podria ayudar a formar una especie de calenario con algunos dato de mi DB ;) Lo que quiero hacer ...
  #1 (permalink)  
Antiguo 14/08/2009, 13:54
Avatar de KuKoRo  
Fecha de Ingreso: julio-2009
Mensajes: 38
Antigüedad: 14 años, 9 meses
Puntos: 2
Ayuda: Formar calendario con php y mysql

Saludos queridos colegas jeje

Alguien me podria ayudar a formar una especie de calenario con algunos dato de mi DB ;)

Lo que quiero hacer es lo siguiente....

Tengo estos datos en mi DB:

| Titulo | Fecha |
| foto1 | 01-09-08 |
| foto2 | 06-09-08 |
| foto3 | 01-12-08 |
| foto4 | 02-01-09 |
| foto5 | 12-01-09 |
| foto6 | 01-03-09 |

Quiero que al consultar estos datos se haga un calendario asi...

2008
Enero
Febrero
Marzo
Abril
Mayo
Junio
Julio
Agosto
Septiembre (2)
Octubre
Noviembre
Diciembre (1)

2009
Enero (2)
Febrero
Marzo (1)
Abril
Mayo
Junio
Julio
Agosto
Septiembre
Octubre
Noviembre
Diciembre

Quiero que me diga cuantas fotos hay en cada mes, pero ahi es donde no se por que parte empezar, ¿como paso por cada mes?, ¿como se que no hay mas fotos en 2007? y cosas asi, no se si alguien tiene una idea de como podria hacerlo...

No es necesario me pongan el codigo (si lo ponen mejor :$), quiero una orientacion y yo tratare de implementarlo.

Gracias por su ayuda.
  #2 (permalink)  
Antiguo 14/08/2009, 14:10
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Ayuda: Formar calendario con php y mysql

Puedes en la misma consulta usar group by y count()
Código mysql:
Ver original
  1. SELECT COUNT(*) AS  Filas,  Fecha FROM  tabla
  2. GROUP BY  Fecha
  3. ORDER BY  Fecha
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 14/08/2009, 18:42
Avatar de KuKoRo  
Fecha de Ingreso: julio-2009
Mensajes: 38
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Ayuda: Formar calendario con php y mysql

Gracias por la respuesta pero no logro avanzar :(

con la opcion que me mencionan en Mysql no logro hacer algo, lo que pasa es que tambien necesitaria un "WHERE id_user=$idUser" he logrado que me cuente pero solo si hay 2 fotos del mismo DIA pero yo lo quiero por MES contar cuantas fotos hay por mes y por usuario ¿como seria la consulta? o algun otro metodo?
  #4 (permalink)  
Antiguo 14/08/2009, 18:55
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 15 años
Puntos: 5
Respuesta: Ayuda: Formar calendario con php y mysql

fijate si podes almacenar en un array los datos de las fotos.
no se bien como tenes hecha la base de datos pero con el where podes llamar a todos los de un sierto mes. poniendole una condicion WHERE a la consulta.
para esto tenes que tener guardado el dia exacto en que fue guardada la foto y el WHERE llamaria solo a los del mismo mes
  #5 (permalink)  
Antiguo 14/08/2009, 19:31
Avatar de KuKoRo  
Fecha de Ingreso: julio-2009
Mensajes: 38
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Ayuda: Formar calendario con php y mysql

gracias por responder ;)

para agrupar por mes tendria yo que crear un campo llamado "mes" y asi mas facil, pero creo esto seria demaciado, agregar un campo mas solo para agregar un mes, he estado pensando mejor obtener todas las fotos y sus fechas de un Usuario, despues ingresarlas a un array pero quitando los dias ejemplo:

Campo_Fecha : 2009-03-23

array(
Fecha_sin_dia => 2009-03,
);

Esto lo haria con un substr(); y posteriormente meteria un for() de 1 - 12 contando las fotos por mes, lo intentare asi aver como me va, creo es algo tedioso y por eso pedia ayuda para ver si habia una mejor solucion.
  #6 (permalink)  
Antiguo 14/08/2009, 21:12
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Ayuda: Formar calendario con php y mysql

Para mejor rendimiento te sugiero hacerlo desde la base de datos
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 15/08/2009, 00:20
rqd
 
Fecha de Ingreso: julio-2008
Mensajes: 228
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Ayuda: Formar calendario con php y mysql

yo dividiría el problema en dos partes

1ra parte
hacer el 'print' de cada mes por año, todavía sin links ni nada, ¿ya resolviste ese ciclo como hacerlo?

2da parte
crear en un arreglo bidimensional los datos que quieres del tipo:
fotos[anio][mes]=cuantas_hay
, esto lo puedes hacer con una consulta de mysql

una vez que hayas hecho este segundo paso, la segunda parte la integras a la primera, es decir que en cada impresión de cada mes, revise si existe un valor en el arreglo y si existe le pone el link a las fotos.

Estaré atento a tus dudas y comentarios

Saludos
  #8 (permalink)  
Antiguo 15/08/2009, 05:29
Avatar de PacoRuiz  
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
Respuesta: Ayuda: Formar calendario con php y mysql

Hola, soy bastante novato, pero creo que esto te funcionaría:

tu problema es que si pones una condición en el where, por ejemplo, fecha = tal valor, como tú has metido las fechas por días, sabrías hacerlo para agrupar las fotos de un día determinado, pero no sabes escribir la condición en el where para que te filtre las de un determinado mes.

Imagino que hay soluciones más simples, a te digo que soy novato. Pero puedes usar la función strotime, que te transforma la fecha al número de segundos desde el 1 de enero de 1970, entonces pones algo del tipo where tal número<strotime(fecha)<tal otro número.

Evidentemente el tal numero será una fórmula en la que usarás strotime para el mes correspondiente.

Me da la impresión de que debe haber métodos más simples, pero no los conozco.

Saludos
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 08:09.