Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zaawansowana konstrukcja zapytania SQL
Forum PHP.pl > Forum > Bazy danych > MySQL
yalus
Witam,

Czy jest mozliwe wykonanie takiego zapytania aby z tabeli skladajacej sie z dwoch kolumn:

ip | data


wyciagnac cos takiego:

IP
data - (ilosc Wystapien w danym dniu)
data - (ilosc Wystapien w danym dniu)
data - (ilosc Wystapien w danym dniu)

IP
data - (ilosc Wystapien w danym dniu)
data - (ilosc Wystapien w danym dniu)
data - (ilosc Wystapien w danym dniu)


mowiac slowami:
wchodzac na moja stronke skrypt zapisuje od ciebie IP i date o ktorej wszedles, z jedngo IP w ciagu dnia mozesz wejsc nieograniczona liczbe razy i wlasnie ja chcialbym sie dowiedziec kto i ile razy wchodzi w danym dniu, np.

255.255.255.255
10/03/2008 - (34)
11/03/2008 - (4)
12/03/2008 - (234)
13/03/2008 - (354)

225.215.225.125
10/04/2008 - (3)
11/04/2008 - (43)
12/04/2008 - (24)
13/04/2008 - (54)

itd. dla wszystkich adresow IP znajdujacych sie w bazie.

czy wogole da sie skonstruowac takie zapytanie SQL?
Zbychu666
Ehh ale ci ludzie leniwi, manuala im sie nie chce czytać. tongue.gif

Tabelka:
  1. CREATE TABLE IF NOT EXISTS `ip_data_test` (
  2. `ip` int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'adres ip odwiedzajacego',
  3. `date` date NOT NULL COMMENT 'data wejscia',
  4. KEY `ip_date` (`ip`,`date`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='';


688128 rekordów zajmuje 17451 KB dla danych testowych - dla normalnych index będzie napewno troche większy.

Zapytanie do wyciągania wyniku:
  1. SELECT INET_NTOA(`ip`), `date`, COUNT(*) FROM `ip_data_test` WHERE `ip`= INET_ATON('178.183.181.223') GROUP BY `ip`,`date`;


Jak chcesz wszystkie IPki to wywal warunek WHERE.

Można jeszcze pomyśleć, aby zamiast dodawać dla każdego wejścia nowy rekord, to wstawić do rekordu licznik ile wejść jest z danego adresu w danym dniu i zwiększać go za każdym wejściem z tej samej ipki (klucz `ip_date` zmień wtedy na UNIQUE lub PRIMARY) - coś w tym stylu insert on duplicate .

P.S. Wciśnięcie przycisku "Pomógł" mile widziane. tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.