2009-08-24 7 views
2

J'ai une application PHP utilisant CakePHP. Je dois présenter un tableau montrant le nombre d'événements particuliers pour chaque jour du mois. Chaque événement est enregistré dans la base de données avec un nom et une donnée. Quelle est la meilleure façon de créer une table pour cela, ai-je vraiment besoin de faire 31 appels SQL pour compter les événements pour chaque jour, ou retirer les données pour le mois entier, puis analyser dans mon application, ou y a-t-il un mieux trouver la commande à utiliser avec un gâteau?Plusieurs comptes dans CakePHP

Répondre

4

Vous pouvez COMPTER les événements et GROUP BY la date à laquelle ils se sont produits.

Exemple:

SELECT eventDate, COUNT() as 'events' 
FROM events 
GROUP BY eventDate 
ORDER BY eventDate ASC 

Ce qui peut rendre des résultats similaires à ce qui suit:

2009-08-11 | 23 
2009-08-09 | 128 
2009-08-06 | 15 

Si vous stockez la date et l'heure que le EVENTDATE, vous devrez utiliser la fonction substr() pour regrouper les événements selon la date:

SELECT substr(eventDate, 1, 10) as 'date', COUNT() as 'events' 
FROM events 
GROUP BY substr(eventDate, 1, 10) 
ORDER BY eventDate ASC 
Questions connexes