Vinnaren i pepparkakshustävlingen!
2009-03-04, 18:49
  #1
Medlem
Kaustis avatar
Kod:
select count(ipfrom counter group by ip


Har hjärnsläpp. Jag vill kunna räkna hur många unika IPn det är i en tabell. Kör jag koden som jag har postat först i inlägget så får jag 1, 1, 1, 1, ... osv. Men jag vill ha en ihoplagd siffra. Typ 2190 eller så.

Kör jag följande så får jag ju ALLA besök på sidan (16130):
Kod:
select count(ipfrom counter

Tabellen:
Citat:
id
timestamp
ip
Citera
2009-03-04, 20:11
  #2
Medlem
Du kan sätta in alla värden i en array, och sen ta ut dem unika ur den sen.

först tilldelar du t ex

$values[$i] alla värden.

sen kan du använda koden nedan för att ta ut så att det bara finns en av varje:

Kod:
$array array_keys(array_flip($values));
        
$antal sizeof($array);
        
                echo 
$antal
Citera
2009-03-04, 20:15
  #3
Medlem
jackelinas avatar
Citat:
Ursprungligen postat av Kausti
Kod:
select count(ipfrom counter group by ip


Har hjärnsläpp. Jag vill kunna räkna hur många unika IPn det är i en tabell. Kör jag koden som jag har postat först i inlägget så får jag 1, 1, 1, 1, ... osv. Men jag vill ha en ihoplagd siffra. Typ 2190 eller så.

Kör jag följande så får jag ju ALLA besök på sidan (16130):
Kod:
select count(ipfrom counter

Tabellen:

Prova följande query:

select count(distinct ip) from counter;
Citera
2009-03-04, 21:06
  #4
Medlem
Kaustis avatar
Citat:
Ursprungligen postat av SingaCrew
Du kan sätta in alla värden i en array, och sen ta ut dem unika ur den sen.

först tilldelar du t ex

$values[$i] alla värden.

sen kan du använda koden nedan för att ta ut så att det bara finns en av varje:

Kod:
$array array_keys(array_flip($values));
        
$antal sizeof($array);
        
                echo 
$antal

Det är ju exakt det där jag vill göra, fast utan PHP. Fast det kanske inte går?

Kanske ska säga att jag använde mySQL om det spelar nån roll.

Distinct funkade inte.
Citera
2009-03-04, 22:43
  #5
Moderator
Protons avatar
i en liten db jag nysss skapade med 3 värden i, ett som hade ip satt till 127.0.0.1 och 2 som hade ip satt till 1.2.3.4 funkade denna hur bra som helst

Kod:
select ip,count(ip) from conter group by ip

Förstår inte vad det är som inte funkar med det? Borde ju göra det du e ute efter?

Är du för övrigt säker på att din tabell innehåller samma ipnummer mer än en gång?
Citera
2009-03-05, 03:04
  #6
Medlem
Kaustis avatar
Eh.... Jag som tänkte jävligt fel/blev överraskad över talet jag fick ut. Distinct funkade alldeles utmärkt för detta ju

Ber om ursäkt för att jag krånglade

Citat:
Ursprungligen postat av jackelina
Prova följande query:

select count(distinct ip) from counter;

__________________
Senast redigerad av Kausti 2009-03-05 kl. 03:09.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback