Avatar billede thb Nybegynder
06. november 2002 - 00:59 Der er 16 kommentarer og
1 løsning

Counter

Hej alle..

Jeg har en counter som tæller hver gang en person går ind på en side... i min db har jeg felterne: ip, dato, login_id (så kan jeg se om folk er logget ind), og side (så kan jeg se hvilke sider de bevæger sig rundt på...)

Det jeg så ikke kan få til at virke, er at jeg vil finde unikke hits, den skal tælle en gang i døgnet per ip....

Kan i hjælpe...

Jeg har prøvet med:

SQL = "select * from counter group by ip & '-' & dato"

men det vil ikke virke.. faktisk troede jeg at det virkede men fandt senere ud af at det gjorde det ikke...

Håber at i forstår..

Thomas
Avatar billede dk_akj Nybegynder
06. november 2002 - 07:40 #1
SQL = "select count(ip) as mycount from counter group by ip & '-' & dato"

//akj
Avatar billede thb Nybegynder
06. november 2002 - 07:56 #2
dk_akj >> Den virker heller ikke...

Thomas
Avatar billede dk_akj Nybegynder
06. november 2002 - 08:03 #3
Prøv denne :
SELECT count (ip)as mycount,ip,dato from counter group by ip,dato order by dato desc , ip;
Avatar billede thb Nybegynder
06. november 2002 - 08:34 #4
Det giver samme tal som før... og det tal kan ikke passe..
Counteren siger 12, og da jeg lige løst prøvede at tælle i db, der talte jeg hvertfald 32 datoer, dvs. at der minimum skal være 32 hits..
Avatar billede dk_akj Nybegynder
06. november 2002 - 08:40 #5
Du får vel mere en en række ud ?? Hvad siger de andre rækker ??

Sql'en vil lave noget ala dette

Hits    IP    Dato
7      xxx  01-01-02
5      xxy  01-01-02
3      xxx  02-01-02
1      xxy  02-01-02
9      zzz  03-01-02

//akj
Avatar billede thb Nybegynder
06. november 2002 - 11:30 #6
vil det ikke give en samlede id tal... dvs. alle hits i db.. eller hva...
Avatar billede dk_akj Nybegynder
06. november 2002 - 11:38 #7
Ikke når du grupperer på dato,

Vil du have alle hitsdelt op på ip er det
SELECT count (ip) AS mycount, ip
FROM visits
GROUP BY ip
ORDER BY  ip;

så vil det give
Hits  ip
13    xxx
12    zzz
25    pqw
osv...
Avatar billede thb Nybegynder
06. november 2002 - 12:01 #8
dvs. at jeg skal først grouppere og så bagefter køre det igennem, og så finde jeg alle hits... ???
Avatar billede dk_akj Nybegynder
06. november 2002 - 12:04 #9
Er det ikke dette du vil have ??

Hits    IP    Dato
7      xxx  01-01-02
5      xxy  01-01-02
3      xxx  02-01-02
1      xxy  02-01-02
9      zzz  03-01-02

Den laves med flg, sql.
SELECT count (ip)as mycount,ip,dato from counter group by ip,dato order by dato desc , ip;

Hvilken db bruger du ?


//akj
Avatar billede thb Nybegynder
06. november 2002 - 14:20 #10
Jeg bruger access, men den SQL sætning du skriver giver det samme resultat som hele tiden... 12... og 12 er ikke det rigtige resultat..

Jeg vil have at en person med f.eks ipen: xxx skal kunne gå ind 1 gang i døgnet og tælle for et unikt hit...
dvs.

ip  dato
xxx  05-11-2002
xxx  06-11-2002
xxx  06-11-2002
yyy  06-11-2002

Det giver 4 hits

Thomas
Avatar billede dk_akj Nybegynder
06. november 2002 - 14:23 #11
Nåh, så er det vel bare en distinct du skal bruge:
SELECT distinct Count(ip) AS mycount
FROM counter

//akj
Avatar billede thb Nybegynder
06. november 2002 - 14:28 #12
Den virker heller ikke... nu siger den.. 4633 hits og det passer desværre heller ikke... :)
Avatar billede dk_akj Nybegynder
06. november 2002 - 14:39 #13
I dit eks. her over:

ip  dato
xxx  05-11-2002
xxx  06-11-2002
xxx  06-11-2002
yyy  06-11-2002

er linie 2 og 3 ens, skal det så ikke kun give 3 hits ??

Jeg forstår ikke helt hvad du vil have ud.
Er det liste med 2 kolonner, IP og dato f.eks:
ip  dato
xxx  05-11-2002
xxx  06-11-2002
xxx  06-11-2002
yyy  06-11-2002

Her kan du så se at xxx har hittet 2 gange den 6 men det er vel ikke unikt ??

eller er det en tabel med 2 kolonner, hits og dato du vil have :

Hits    Dato
14      05-11-2002
58      06-11-2002
19      07-11-2002
72      08-11-2002

//akj



//akj
Avatar billede thb Nybegynder
06. november 2002 - 14:46 #14
selvfølgelig har du ret i at det kun er 3 hits i mit eks... :)

Det jeg vil have er bare tallet på hvor mange unikke hits der er i dben...
Det ser ud som om jeg bliver nødt til at løbe sql igennem med en lykke for at ligge det hele sammen...

Jeg troede at det kunne lade sig gøre bare med count() funktionen.

Thomas
Avatar billede thb Nybegynder
06. november 2002 - 14:51 #15
Jeg tror at jeg har resultatet her..

SQL = "SELECT Count(id) AS antal, dato FROM counter  group by ip, dato order by dato ASC"
    set s = conn.Execute(SQL)
   
    response.write "Siden d. " & day(s("dato")) & "&nbsp;" & monthname(month(s("dato"))) & "&nbsp;" & year(s("dato")) & " har der været <b>"
   
    i = 0
    s.movefirst
    Do while not s.eof
        i = i +1
    s.movenext
    Loop
   
    response.write i & "</b> besøgende."

det giver 485 unikke hits..
Og det kan jo godt passe..

Thomas
Avatar billede thb Nybegynder
06. november 2002 - 15:38 #16
Her får du sku da lige de der point, altså dem du lige har fortjent... :)
Tak for hjælpen..

Thomas
Avatar billede dk_akj Nybegynder
07. november 2002 - 06:52 #17
Selvtak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester