2012-04-21 20 views
8

Tengo una tabla que contiene suscripciones de miembros y me gustaría poder comenzar a hacer gráficos y análisis de los datos y buscar tendencias de registro, etc., así que me gustaría poder trazar un gráfico de líneas que me muestra cuántas personas se inscribieron cada semana durante las últimas 52 semanas.Contando el número de eventos por semana en PHP

Tengo gráficos que funcionan bien, ya que los estoy usando ampliamente, pero estoy luchando para entender cómo extraer los datos de MySQL usando PHP, lo que me molesta porque sé que no debería ser difícil. La tabla tiene un campo llamado datestamp con un formato de Ymd. ¿Cuál es la mejor forma de crear un ciclo que imprima la fecha y un recuento de suscripciones esa semana y cada semana durante las 52 semanas anteriores?

+0

no se olvide de aceptar una ¡Responda si fue útil! –

Respuesta

12

Asumiendo que su columna de marca de tiempo se llama signup_date, se podría hacer una consulta como:

SELECT 
    WEEKOFYEAR(signup_date) AS weekno, 
    COUNT(1) AS signups 
FROM your_table 
GROUP BY WEEKOFYEAR(signup_date); 

Esto le daría un conjunto de resultados de 2 columnas, la semana del año, y el número de inscripciones que había en esa semana.

Edición 1:

Para obtener el fecha de la semana para cada uno de estos resultados, se puede añadir lo siguiente a la consulta:

SELECT 
    WEEKOFYEAR(signup_date) AS weekno, 
    COUNT(1) AS signups, 
    SUBDATE(signup_date, INTERVAL WEEKDAY(signup_date) DAY) AS date_of_week 
FROM your_table 
GROUP BY WEEKOFYEAR(signup_date); 
+0

Eso funciona excelente, pero por una pequeña cosa: me gustaría poder mirar 52 semanas antes de hoy en lugar de mirar las 52 semanas del año. El uso de este método esta semana se muestra (correctamente) como la semana 16 pero, al trazar, me gustaría que esta semana se muestre como semana 1 (o 52) y luego semana pasada 2 (o 51) y así sucesivamente para que cambie cada semana a medida que pasa el tiempo. También es posible mostrar la fecha real de la semana, p. 01/01/2012 4, 08/01/2012 14 y así sucesivamente? – bhttoan

+0

Consulte Edición 1 para ver la última parte de su comentario. –

Cuestiones relacionadas