Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zaawansowana konstrukcja zapytania SQL
yalus
post
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


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?


--------------------
człowiek nie sznurek wszystko wytrzyma
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Zbychu666
post
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 5
Dołączył: 13.07.2008

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


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
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 - 06:42