Avatar billede Mik2000 Professor
08. november 2008 - 16:08 Der er 11 kommentarer og
2 løsninger

Database: Tæl alle unike og hent alle indenfor sidste måned

Hej

Jeg har 2 spørgmål

1:
Jeg har en database med elterne ip, dato og tid
Her skal jeg tælle alle med unike ip adresser
Dvs hvis der er f.eks. 2 eller 5 med 80.80.80.80 så skal de kun tælles en gang
Hvordan gøres dette?

2:
I samme tabel (ip, dato, tid) ønsker jeg at tælle alle der er maks en måned gamle
dato er i formatet dateY-m-d (åååå-mm-dd)
tid er i formatet dateH:i:s (tt:mm:ss)
Hvordan gøres dette?
Avatar billede w13 Novice
08. november 2008 - 16:29 #1
1:

SELECT count(ip) as antalip FROM tablenavn GROUP BY id
Avatar billede w13 Novice
08. november 2008 - 16:31 #2
2:

Måske:

SELECT count(ip) FROM tablenavn WHERE dato > date_add('day', -30, CURRENT_DATE)
Avatar billede coderdk Praktikant
08. november 2008 - 16:47 #3
w13, group by ip vel :)

mik2000, er din date/time DATETIME typen?
Avatar billede w13 Novice
08. november 2008 - 16:54 #4
Ja, ip :P
Avatar billede Mik2000 Professor
08. november 2008 - 17:07 #5
ja date er date type og tid er time
Men de er i 2 forskellige felter
Avatar billede Mik2000 Professor
08. november 2008 - 17:07 #6
date er date type = dato er date type
Avatar billede Mik2000 Professor
08. november 2008 - 17:13 #7
Ved nummer 1. Hvordan får jeg udskrevet tallet. Har prøvet som jeg normalt gør når jeg henter fra db, men den returnere 1 selvom der er 3 unikke.
Avatar billede coderdk Praktikant
08. november 2008 - 17:42 #8
$sql = "SELECT ip, count(ip) as antalip FROM tablenavn GROUP BY ip";
$qh = mysql_query( $sql ) or die( mysql_error() );
while ( $row = mysql_fetch_assoc( $qh ) )
{
  echo "IP: $row[ip], Antal: $row[antalip]<br />";
}

burde umiddelbart give det rigtige
Avatar billede Slettet bruger
09. november 2008 - 00:36 #9
for at udskrive det unikke antal af resultater, skal du bruge DISTINCT og derefter tælle med count.
f.eks:

$sql = "SELECT *, DISTINCT(COUNT(`ip`)) AS uniqIPs FROM `tablenavn`"

så kald den fiktive kolonne 'uniqIPs' når du vil have det unikke antal.
Ang. kun at hente rækker inden for det sidste månede, ville jeg prøve noget lign. det w13 viste i en tidligere kommentar.
Avatar billede Mik2000 Professor
10. november 2008 - 22:45 #10
Hvad med det med at hente en måned tilbage i tiden?
Avatar billede Mik2000 Professor
10. november 2008 - 22:49 #11
Fik den anden til at virke med:
SELECT COUNT(DISTINCT ip) FROM `statistik`
Avatar billede w13 Novice
10. november 2008 - 23:07 #12
Du har slet ikke kommenteret mit eksempel 08/11-2008 16:31:39, så det kan jeg kun henvise til.
Avatar billede Mik2000 Professor
07. maj 2009 - 10:52 #13
Lukket
Ingen svar, så lukker bare her med dette, da ideen er droppet, for at få ryddet op
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