Je stocke un horodatage dans une table mysql chaque fois que quelqu'un visite le site pour la première fois.Afficher le nombre de visites dans les 24 dernières heures, réparties par heure
Je serpentent avec des données qui ressemble à ceci:
2009-08-02 04:08:27
2009-08-02 04:07:47
2009-08-02 05:58:13
2009-08-02 06:28:23
2009-08-02 06:34:22
2009-08-02 08:23:21
2009-08-02 09:38:56
Qu'est-ce que Im vouloir faire avec ces données est de créer un nombre de visites qui tombent dans chaque heure. Donc, dans l'exemple ci-dessus j'arriverais à la 4ème heure ayant 2 visites, la 5ème heure = 1, 6ème heure 2, 8ème heure 1 etc.
Je pensais que la meilleure manière de faire ceci, serait de faire un déclaration comme ça:
// a 24 hour loop
for($i = 24; $i > -1; $i--) {
// the query for each hour
$sql = 'SELECT * FROM visits WHERE (DATE(added) = DATE_SUB(CURRENT_DATE(), INTERVAL ' . $i . ' HOUR))'
$res = mysql_query($sql);
$count = mysql_num_rows($res);
// store the number of rows for this loop in the array
$visits[] = $count;
}
Cela semble logique pour moi ... mais pour une raison quelconque ... son ne fonctionne certainement pas.
Comment voulez-vous faire cela?
Je voulais juste ajouter, un petit problème avec la méthode ci-dessus par rapport à ce que je faisais est que je crée 2 tableaux. 1 avec les noms des heures, 1 avec le nombre de visites dans cette heure. En utilisant la méthode ici Pascal, je reçois des heures manquantes s'il n'y avait pas de visites à l'heure comme ça: "12AM", "01AM", "04AM", "05AM", "07AM", "08AM", " 09:00 "," 11:00 "," 12PM "," 02PM "," 03PM "," 04PM "," 05PM "," 07PM "," 20PM "," 21PM "," 22H " et visites : 10,1,19,3,1,3,1,3,10,1,1,3,1,6,1,2,2,4 Donc, il y a 18 je pense sortir, ce qui signifie 4 heures sur 24 n'ont eu aucune visite. Idéalement, je voudrais récupérer le compte 0 pour les heures vides – willdanceforfun
Un truc que je faisais pour ce problème particulier était de créer une table heures, qui contient des valeurs de 0 à 23, puis externe rejoindre la requête avec cette table pour remplir les blancs. C'est un petit truc sale, mais ça marche plutôt bien. – OmerGertel
@OmerGertel: ce serait une solution; mais il serait peut-être mieux de parler des résultats en PHP et d'ajouter les "heures manquantes" (ouais, ça veut dire un peu de code PHP pour "patcher" le resulset avant de l'utiliser, je l'avoue) –