[mysql] licznik dzienny
sd - 11-07-2007 00:00
[mysql] licznik dzienny
witam
chcialbym zrobic nieskomplikowane statystyki dla mojej strony pomyslal ze dobrym rozwiazaniem bedzie zapisywanie wejsc kazdego dnia utworzylem tabele statystyki z kolumnami id, data, licznik
jezeli osoba wejdzie pierwszy raz na strone w danym dniu w wierszu data = now() wartosc w kolumnie licznik zostanie zwiekszona o 1.
ale co jak nie ma jeszcze takiego wiersza?
jezeli nie ma trzeba zastosowac insert, jezeli juz jest update. zeby wiedziec ktore zapytanie uzyc trzeba wczesniej selectem sprawdzic czy jest taki wiersz.
dobrze rozumuje? czy moze jednak da sie to prosciej wykonac?
mysql w wersji 5.
pozdrawiam
=?iso-8859-2?Q?Krzysztof_Jod=B3owski?= - 12-07-2007 00:09
insert into licznik (czas, ilosc) values (date_format(now(),'%Y-%m-%d'), 1) on duplicate key update ilosc=ilosc+1
mysql> explain licznik; +--------+----------+------+-----+---------------------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+----------+------+-----+---------------------+-------+ | czas | datetime | NO | PRI | 0000-00-00 00:00:00 | | | ilosc | int(6) | NO | | 0 | |
-- pozdrawiam Krzysztof Jodłowski http://www.wysylkowo.pl
sd - 12-07-2007 00:09
Krzysztof Jodłowski pisze: > insert into licznik (czas, ilosc) values (date_format(now(),'%Y-%m-%d'), 1) > on duplicate key update ilosc=ilosc+1
dziekuje bardzo. takich technik jeszcze nie poznalem:)
pozdrawiam
sd - 12-07-2007 00:09
a jeszcze jedno pytanie zwiazane z tym
jak pobrac statystyki dla calego roku ale tak zeby pogrupowal po miesiach tzn zeby wyrzucil 12 wierszy - miesiace - i ile w danym miesiacu bylo wejsc.
chyba funkcja grupujaca sie tu nie przyda?
=?iso-8859-2?Q?Krzysztof_Jod=B3owski?= - 12-07-2007 00:09
> jak pobrac statystyki dla calego roku ale tak zeby pogrupowal po > miesiach tzn zeby wyrzucil 12 wierszy - miesiace - i ile w danym > miesiacu bylo wejsc.
Np. dla dni: SELECT date_format(czas, '%Y-%m-%d'), sum(ilosc) FROM licznik WHERE czas between '2007-07-01' and '2007-07-11' GROUP BY date_format(czas, '%Y-%m-%d')
Dla miesięcy odpowiednio: SELECT date_format(czas, '%Y-%m'), sum(ilosc) FROM licznik WHERE czas between '2007-03-01' and '2007-07-31' GROUP BY date_format(czas, '%Y-%m')
Poczytaj trochę dokumentacji (jest trochę przykładów) i pokombinuj "ręcznie" z listy poleceń.
-- pozdrawiam Krzysztof Jodłowski http://www.wysylkowo.pl
sd - 12-07-2007 00:09
Krzysztof Jodłowski pisze:
> Np. dla dni: > SELECT date_format(czas, '%Y-%m-%d'), sum(ilosc) > FROM licznik > WHERE czas between '2007-07-01' and '2007-07-11' > GROUP BY date_format(czas, '%Y-%m-%d')
tu akurat nie bedzie potrzebne grupowanie bo w wierszach sa wlasnie dni
> Dla miesięcy odpowiednio: > SELECT date_format(czas, '%Y-%m'), sum(ilosc) > FROM licznik > WHERE czas between '2007-03-01' and '2007-07-31' > GROUP BY date_format(czas, '%Y-%m') > > Poczytaj trochę dokumentacji (jest trochę przykładów) i pokombinuj > "ręcznie" z listy poleceń. >
dziekuje bardzo:) brakowalo mi w mojej wiedzy grupowania po czasie:)
pozdrawiam
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
zanotowane.pldoc.pisz.plpdf.pisz.plfantazia.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|