Avatar billede spunk13 Nybegynder
06. juni 2003 - 14:31 Der er 9 kommentarer og
3 løsninger

Flere ens resultater koges ned til et

Jeg har nogle IP adresser fra forskellige brugere der har besøgt mit site. Lige nu kan jeg se hver eneste gang den samme bruger besøger mit site. Jeg vil gerne kunne tælle hvor mange forskellige brugere der har været inde, så den samme IP ikke bliver talt.

Altså når jeg bruger mysql_num_rows($ips), så skal $ips ikke indeholde den samme IP, mere end 1 gang.

Tag ikke fejl! Jeg søger ikke et script der kun smider data ind i databasen, den første gang brugeren besøger siden.

Hvis koden ikke er simpel må der gerne komme en lille forklaring med :)
Avatar billede fri-hash Nybegynder
06. juni 2003 - 14:34 #1
SELECT DISTINCT ip FROM tabelnavn

skulle gøre at den kun henter hver ip 1 gang
Avatar billede fangel Nybegynder
06. juni 2003 - 14:35 #2
nu er advanceret MySQL ikke min stærke side, men bruge

SELECT  ip FROm tabel GROUP BY ip

ikke også virke?

Morten
Avatar billede spunk13 Nybegynder
06. juni 2003 - 14:38 #3
Virker ikke. Rækken med ip indeholder jo flere forskellige ip'er
Avatar billede spunk13 Nybegynder
06. juni 2003 - 15:19 #4
Undskyld, min fejl, databasen jeg testede det med indeholdte kun 1 ip.
Det ser ud til at begge virker, så i er velkomne til at smide et svar..
Avatar billede fangel Nybegynder
06. juni 2003 - 15:24 #5
svaa'r
Avatar billede exp Juniormester
06. juni 2003 - 16:41 #6
jeg tror fri-hash's er den mest rigtige - principielt burde dea_pg's stadig indeholde flere ens IP'er, bare sorteret så de ligger lige i r*ven af hinanden...

fri-hash's vælger kun en IP ud, hvis den ikke i forvejen er i array'et, så hvis fx db'en ser sådan ud:

127.0.0.1
127.0.0.2
127.0.0.3
127.0.0.1
127.0.0.2

så vil dea_pg lave følgende array (asc):
127.0.0.1
127.0.0.1
127.0.0.2
127.0.0.2
127.0.0.3

fri-hash (også asc):
127.0.0.1
127.0.0.2
127.0.0.3
Avatar billede fangel Nybegynder
06. juni 2003 - 17:00 #7
jeg sagde jeg ikke var så skarp til MySQL ;)
Avatar billede schaefner Juniormester
06. juni 2003 - 17:02 #8
dea_pg's burde gøre det samme, ikke bare grupperer dem, men kun udskrive en enkelt af hver.
Avatar billede exp Juniormester
06. juni 2003 - 17:15 #9
schaefner >>
Kender du den der med at "jeg har læst et sted [...] men kan ikke lige huske hvor..." -- sådan har jeg det lige nu. Men hvis det virker, så er der vel ikke noget i vejen for at bruge det.

Kan så på den anden side huske, at da jeg lavede en funktion der skulle vise en række fuglearter (asp og access) viste den alle poster, ALLE!

Jeg vil ihvertfald stadig bruge DISTINCT
Avatar billede fri-hash Nybegynder
06. juni 2003 - 17:29 #10
ja, distinct er til at undgå dubletter, group by's styrke er vist mere at finde f.eks antal af hver

SELECT ip, count(*) as antal GROUP BY stilling
skulle give f.eks.

ip          Antal
127.0.0.1    2
127.0.0.2    2
127.0.0.3    1
Avatar billede fri-hash Nybegynder
06. juni 2003 - 17:30 #11
GROUP by ip sku der s'følig stå ... er en omskrivning af et andet eksempel ;-)
Avatar billede exp Juniormester
06. juni 2003 - 17:44 #12
"Kan så på den anden side huske, at da jeg lavede en funktion der skulle vise en række fuglearter (asp og access) viste den alle poster, ALLE!" (og det var med order by et_eller_andet, ikke distinct)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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