Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Tworzenie stastystyk
Bojakki
post
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

Ostrzeżenie: (0%)
-----


Mam przykładowa tabele z danymi odwiedzin
Cytat
[dzien][miesiac][rok]
[1][4][2010]
[2][4][2010]
[2][4][2010]
[4][4][2010]
[5][4][2010]
[5][4][2010]


Jak widac
I teraz chce narysowac sobie wykresik obejmujący ostatnie 60 dni licząc od dzisiaj ($now=date("m-d-Y")winksmiley.jpg, czyli tzreba zliczyc te rekordy. Powinno wyjśc tak, że powstaje tablica z 60 wartosciami i dopiero 5 ostatnich ma jakies wartosci wieksze niz 0, czyli 56=1, 57=2, 58=0, 59=1 i 60=2, wczesniejsze maja 0 czyli dla nich slupek ma wysokosc 0 pixeli (podobnie jak dla 58 dnia.

Nie wiem jak sie za to zabrac, podejrzewam, ze latwe nie jest. Bardzo prosze o pomoc, nie szczedze przycisku "Pomógł":)


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
werian
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.08.2009

Ostrzeżenie: (0%)
-----


Ta tabela w MySQL'u czy PHP?
Go to the top of the page
+Quote Post
d3f3nd3r
post
Post #3





Grupa: Zarejestrowani
Postów: 77
Pomógł: 6
Dołączył: 9.08.2008

Ostrzeżenie: (0%)
-----


Jeżeli to mają być tylko odwiedziny tj. bez ip itp... to wystarczy tabela 2 kolumnowa (data i wejscia) jesli ma byc bardziej rozbudowane to jeszcze jedna kolumna (ip). Jeśli inne dane to odpowiednio wiecej kolumn.
W pierwszym przypadku sprawdzasz czy przy wejściu na strone jest w bazie wpis z aktualna data jeśli nie ma to dodaje date i zapisuje jedno wejście. Jeśli jest to wejścia plus jeden. W drugim przypadku sprawdzasz czy to IP było już na stronie. Jeśli nie było to dodaje wpis do bazy jeśli było to nic nie robi (można też posyłać coś do ciasteczek i strawdzac date). Co to wyświetlania wykresu to można np. w pętli wyświetlać jakiegoś piksela.jpg (słupek) lub poczytaj o GD2
Go to the top of the page
+Quote Post
blooregard
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Niepotrzebnie rozbijasz datę odwiedzin na tyle pól.
Wystarczy jedno pole odpowiedniego typu (DATETIME, TIMESTAMP), a potem to już tylko zabawa z DATEDIFF / INTERVAL i wyciągasz sobie dane z dowolnych przedziałów czasowych.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
Bojakki
post
Post #5





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

Ostrzeżenie: (0%)
-----


Cytat(werian @ 5.04.2010, 22:28:08 ) *
Ta tabela w MySQL'u czy PHP?

W mysqlu

Cytat(d3f3nd3r @ 5.04.2010, 22:33:02 ) *
Jeżeli to mają być tylko odwiedziny tj. bez ip itp... to wystarczy tabela 2 kolumnowa (data i wejscia) jesli ma byc bardziej rozbudowane to jeszcze jedna kolumna (ip). Jeśli inne dane to odpowiednio wiecej kolumn.
W pierwszym przypadku sprawdzasz czy przy wejściu na strone jest w bazie wpis z aktualna data jeśli nie ma to dodaje date i zapisuje jedno wejście. Jeśli jest to wejścia plus jeden. W drugim przypadku sprawdzasz czy to IP było już na stronie. Jeśli nie było to dodaje wpis do bazy jeśli było to nic nie robi (można też posyłać coś do ciasteczek i strawdzac date). Co to wyświetlania wykresu to można np. w pętli wyświetlać jakiegoś piksela.jpg (słupek) lub poczytaj o GD2

Te dane sa juz obrobione. Tzn. to jest wizyta, a nie tzw. hitsy. Czyli kazda wizyta to rozny IP. Chodiz mi o samo zapytanie, ktore zwrociloby mi te 60 elementowa tablice, ktora moglbym wyswietlic za pomoca petli.

Cytat(blooregard @ 5.04.2010, 22:37:00 ) *
Niepotrzebnie rozbijasz datę odwiedzin na tyle pól.
Wystarczy jedno pole odpowiedniego typu (DATETIME, TIMESTAMP), a potem to już tylko zabawa z DATEDIFF / INTERVAL i wyciągasz sobie dane z dowolnych przedziałów czasowych.

Mam jeszcze te daty w postaci unixowej. Nie wiem czy to cos ultawia czy nie, ale mam w bazie zebrane te 2 formaty i na 1 z nich musze uzyskac tablice z odiwedzinami za ostatnie 60 dni. Potrafiłbym wyciagnac dane dla akzdego dnia osobnym zapytaniem, ale na pewno da sie to zrobic za pomoca 1 a nie 60. I takiej wlansie pomocy potrzebuje

Ten post edytował Bojakki 6.04.2010, 13:28:06


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 05:53