Ik heb een aantal statistieken in een tabel opgeslagen met o.a. de volgende kolommen en records:
Nu wil een overzicht geven van het aantal hits en sessies vandaag, gisteren, deze week (tot nu toe), vorige week, 2 weken geleden. De eerste lukte me na wat denkwerk:
vandaag:
Daarna loop ik echter vast:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| +------------+------+----------+ |date | hits | sessions | +------------+------+----------+ | 2007-04-18 | 47 | 4 | +------------+------+----------+ | 2007-04-17 | 100 | 5 | +------------+------+----------+ | 2007-04-15 | 64 | 4 | +------------+------+----------+ | 2007-04-14 | 43 | 3 | +------------+------+----------+ | 2007-04-13 | 54 | 5 | +------------+------+----------+ | 2007-04-12 | 76 | 2 | +------------+------+----------+ |
Nu wil een overzicht geven van het aantal hits en sessies vandaag, gisteren, deze week (tot nu toe), vorige week, 2 weken geleden. De eerste lukte me na wat denkwerk:
vandaag:
code:
1
2
3
| db_query('SELECT COUNT(hits) FROM stats_dt WHERE YEAR(date) = %d AND MONTH(date) = %d AND DAYOFMONTH(date) = %d', date('Y'), date('m'), date('d')) |
Daarna loop ik echter vast:
- ik weet niet hoe ik moet vertellen wat de datum van gisteren is. Ik zou date('d') - 1 kunnen doen, maar dat werkt niet als het vandaag 1 mei is, en gisteren 30 april
- als de week op zondag begint, dan kan ik vanaf vandaag terugtellen: vandaag is het de 18e, dus dinsdag was het de 17e, maandag de 16e en zondag de 15e. Als ik dus de stats wil hebben van deze week (tot nu toe), tel ik die van de 15e t/m de 18e bij elkaar op. Maar ook hier geldt: hoe doe ik dat in mijn code? Met behulp van mktime in PHP of kan het direct mbv SQL?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."