Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL]GROUP BY a datestamp, Zliczanie wpisów z każdego dnia
v1t4n
post
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 16
Dołączył: 19.02.2005
Skąd: Dębica

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


Witam.

Chce zrobic sobie piekne statystyki logowan i problem w tym ze musze sciagnac z bazy ilosc logowan na kazdy dzien. Oczywiscie w trakcie kazdego logowania zapisywany jest w bazie zwrot z mktime (datestamp).

Mam 2 pomysły, jednak nie wiem na ile beda zoptymalizowane.

Kod 1:
  1. SELECT COUNT(`id`), CEIL(`date` / 86400) AS `t_day` FROM `login_logs` GROUP BY `t_day` ASC

Czas wykonania przy 1000 powtorzen: 67.0679588318

Kod 2:
  1. SELECT COUNT(`id`), FROM_UNIXTIME(`date`, '%Y%m%d') AS `t_day` FROM `login_logs` GROUP BY `t_day` ASC

Czas wykonania przy 1000 powtorzen: 67.9778862

Niby nie ma wielkiej roznicy, ale chcialbym sie podeprzeć Waszym doswiaczeniem lub ewentualnie dowiedziec sie jak mozna to zrobic w inny sposob.
Z góry dziekuje.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
outsider
post
Post #2





Grupa: Zarejestrowani
Postów: 267
Pomógł: 36
Dołączył: 8.08.2008

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


Cytat
ilosc logowan na kazdy dzien

To nie lepiej do pliku .txt zapisac ? Bo rozumiem ze ma byc kazda godzina logowania w danym dniu + ilosc (count). Lepiej by wygladalo niz w bazie na okreslona ilosc dni. Np. po odczytaniu dat z pliku, "przeterminowane" daty mozna skasowac robiac zapias do pliku bez nich.
Go to the top of the page
+Quote Post
v1t4n
post
Post #3





Grupa: Zarejestrowani
Postów: 111
Pomógł: 16
Dołączył: 19.02.2005
Skąd: Dębica

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


@*OuTSideR*: nie wiem czy w pliku byloby mi tak wygodnie tego szukac. W bazie mam jeszcze IP, id usera i przegladarke - przeszukiwanie bazy wzgledem takich kryteriow jest znacznie latwiejsze.
Go to the top of the page
+Quote Post
outsider
post
Post #4





Grupa: Zarejestrowani
Postów: 267
Pomógł: 36
Dołączył: 8.08.2008

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


Jak bys mial takie dane w pliku:
Kod
2009-04-22 13:55:54 192.45.77.183
2009-03-22 22:55:54 83.45.77.12

wystarczy
  1. <?php
  2. $file = file('baza/'.$id_usera.'.txt');
  3. $ip = array();
  4. for($i=0 ; $i < count($file) ; $i++) {
  5.   $dane = explode(' ', $file[$i]);
  6.   $ip[] = $dane[2];
  7.   ...
  8. }
  9. $ilosc_logowan = count($file);
  10. ?>


i masz wszystkie dane, no i jeszcze uwzglednic tylko dzisiejsze daty (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował *OuTSideR* 4.05.2009, 18:30:43
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 7.10.2025 - 01:23