Ik heb een visitcounter die elke bezoekershit opslaat. Van tevoren kijkt hij eerst of je die dag al niet gelogged bent, en zo niet, dan slaat hij je
"IP + datum&tijd + of je ingelogd bent" op.
Afijn, dat werkt goed, maar nu wil ik grafieken maken aan de hand van die gegevens.
Allereerst kijk ik hoeveel dagen de huidige maand heeft, x 12
Waarom maal 12? Ik wil een maandgrafiek laten zien, en wil uitberekenen hoeveel pixels ik in de breedte nodig zal hebben. Elke pixel in de breedte moet 2 uur in tijd voorstellen. De pixels in de hoogte geven het aantal hits in die 2 uur aan.
Dus normaal heeft een dag 24 uur, maar omdat ik niet elke pixel 1 uur wil, doe ik maal 12.
Als de dag 30 dagen heeft, dan krijg je een tabel van 360 pixels breed (30 x 12)
De hoogte moet 100 pixels zijn. Het maximum van iedere 2 uur moet bekeken worden, en dat moet dan de schaal vastleggen waarop elke pixel wordt ingekleurd.
Ik wil dus 360 pixels bij 100 pixels tabel maken. en elke <td> is 1 pixel hoog, en breed.
De tabel is in dit geval wit. Als het maximum van alle 2 uren bekeken wordt, en het maximum aantal bezoekers was 1000 (ok, ok het is veel, maar voor het voorbeeld), dan wordt dus de schaal, elke pixel hoog, is 10 unieke bezoekers.
Ik hoop dat je dat kunt volgen. Ik zit te denken aan for loopjes, maar kweet het niet precies. In ieder geval zitten er geen fouten in bovenstaande code, dus je kunt erop verder werken. Het kan best zijn dat het compleet anders moet. Ik weet alleen niet wat ik nu moet doen.
Weet iemand raad met dit? Plz geen javascriptjes aanraden (mits die er zijn)
Codeertaal: PHP op PHP 4.2.2
Dit lijkt me meer een probleem voor wiskundeknobbels
"IP + datum&tijd + of je ingelogd bent" op.
Afijn, dat werkt goed, maar nu wil ik grafieken maken aan de hand van die gegevens.
Allereerst kijk ik hoeveel dagen de huidige maand heeft, x 12
Waarom maal 12? Ik wil een maandgrafiek laten zien, en wil uitberekenen hoeveel pixels ik in de breedte nodig zal hebben. Elke pixel in de breedte moet 2 uur in tijd voorstellen. De pixels in de hoogte geven het aantal hits in die 2 uur aan.
Dus normaal heeft een dag 24 uur, maar omdat ik niet elke pixel 1 uur wil, doe ik maal 12.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <? $month = date("t"); // maximaal aantal dagen in huidige maand $month1 = $month * 12; $date2 = date("Y-m-01 00:00:00"); $gettijdquery = "SELECT UNIX_TIMESTAMP(tijd),login FROM visits WHERE tijd > '$date2' ORDER BY tijd"; $gettijdresult = mysql_query ( $gettijdquery ); $gettijdaantal = mysql_num_rows ( $gettijdresult ); $hoogte = $gettijdaantal / 100; ?><table width="<?= $month1 ?>" border="0" cellpadding="0" cellspacing="0" align="center" bgcolor="white"><? while ( list ( $tijd, $login, ) = mysql_fetch_row ( $gettijdresult ) ) { $tijd1 = date("H", $tijd); // het uur $tijd2 = date("j", $tijd); // de dag } ?> </table> |
Als de dag 30 dagen heeft, dan krijg je een tabel van 360 pixels breed (30 x 12)
De hoogte moet 100 pixels zijn. Het maximum van iedere 2 uur moet bekeken worden, en dat moet dan de schaal vastleggen waarop elke pixel wordt ingekleurd.
Ik wil dus 360 pixels bij 100 pixels tabel maken. en elke <td> is 1 pixel hoog, en breed.
De tabel is in dit geval wit. Als het maximum van alle 2 uren bekeken wordt, en het maximum aantal bezoekers was 1000 (ok, ok het is veel, maar voor het voorbeeld), dan wordt dus de schaal, elke pixel hoog, is 10 unieke bezoekers.
Ik hoop dat je dat kunt volgen. Ik zit te denken aan for loopjes, maar kweet het niet precies. In ieder geval zitten er geen fouten in bovenstaande code, dus je kunt erop verder werken. Het kan best zijn dat het compleet anders moet. Ik weet alleen niet wat ik nu moet doen.
Weet iemand raad met dit? Plz geen javascriptjes aanraden (mits die er zijn)
Codeertaal: PHP op PHP 4.2.2
Dit lijkt me meer een probleem voor wiskundeknobbels
[ Voor 12% gewijzigd door Cheater op 16-12-2002 01:28 ]