Avatar billede Slettet bruger
14. juli 2004 - 18:50 Der er 54 kommentarer og
1 løsning

mysql_query("SELECT count(id) AS unik WHERE 1=1 GROUP BY ip")

spørgsmålet er i titlen ^^

jeg kan ikke få

mysql_query("SELECT count(id) AS unik WHERE 1=1 GROUP BY ip") or die(mysql_error());

til at virke, der er syntax error og jeg fatter ikke hvorfor
Avatar billede jammerlab Nybegynder
14. juli 2004 - 18:51 #1
Hvad siger fejlen?
Avatar billede simonvalter Praktikant
14. juli 2004 - 18:55 #2
skal du ikke fortælle hvilket table du vil have fat i?

SELECT count(id) AS unik FROM tablename WHERE 1=1 GROUP BY ip

where 1 = 1 er jeg heller ikke lige med på.. men du har vel din grund.
Avatar billede stig3 Mester
14. juli 2004 - 18:56 #3
Den her:
SELECT count(id) AS unik
....giver et tal

Der er ingen grund til at "group" et enkelt tal.

Hvad er det du gerne vil ?
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 18:56 #4
Ja, hvis der er en grund. Det er dog typisk lidt hurtigere at sige:
  SELECT count(*) AS unik FROM tablename GROUP BY ip
Avatar billede Slettet bruger
14. juli 2004 - 18:57 #5
lol den manglede nok den med tabel :D
Avatar billede simonvalter Praktikant
14. juli 2004 - 18:58 #6
som stig3 siger så kan du saktens korte den ned til.
SELECT count(id) AS unik FROM tablename
Avatar billede Slettet bruger
14. juli 2004 - 18:59 #7
jeg skal jo have antallet af unikke ip'er fra tabellen counter.. det her virkede:

mysql_query("SELECT count(id) AS unik FROM counter WHERE 1=1 GROUP BY ip") or die(mysql_error());

smid svar alle 3
Avatar billede simonvalter Praktikant
14. juli 2004 - 18:59 #8
ok
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 18:59 #9
Det vli bestemt ikke give samme resultat. Men antallet uden ip er nok ikke så smart:
  SELECT ip,count(*) AS unik FROM tablename GROUP BY ip
Avatar billede Slettet bruger
14. juli 2004 - 19:00 #10
stig3 kæg svar, og erik jeg befaler dig... læg svar :D
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 19:02 #11
Hvis du kun vil have antallet af unikke IP-er kan du
  select distinct ip from tablename
og så se hvor mange rækker det giver. Det er nok hurtigere.
Avatar billede Slettet bruger
14. juli 2004 - 19:02 #12
læg'
Avatar billede Slettet bruger
14. juli 2004 - 19:02 #13
distinct? hvad gør den
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 19:05 #14
Hunde kan måske dresseres til at gøre kunster på kommando, jeg kan ikke.
Distinct sørger for at du ikke får dubletter i udtrækket, lidt det samme
som group by, men du spare udregningen af en overflødig aggragatfunktion: count.
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 19:06 #15
Ookay, det hedder: aggregatfunktion
Avatar billede Slettet bruger
14. juli 2004 - 19:06 #16
den virker i hvert fald :D
Avatar billede Slettet bruger
14. juli 2004 - 19:08 #17
er du godt klar over at du kunne få flest point på hele eksperten?

du ved jo alt!
Avatar billede Slettet bruger
14. juli 2004 - 19:09 #18
Jeg har dog en lille ting, hvis jeg godt fra counter, vil have hvor mange der felst har været online indenfor 24 timer.

ved ikke om du forstod det

i counter har jeg en kolonne "tid" med time() i
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 19:09 #19
...og ville jeg blive lykkeligere af det? ;)
Avatar billede Slettet bruger
14. juli 2004 - 19:10 #20
nej, men du er jo en slags gud... hvordan kan du vide alt?
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 19:10 #21
så laver du en 
  $t=time()-24*60*60;
og
  "....where tid>=$t"
Avatar billede Slettet bruger
14. juli 2004 - 19:12 #22
men jeg vil jo have antallet hvor der var flest online
Avatar billede Slettet bruger
14. juli 2004 - 19:15 #23
så jeg er ikke helt med på det der...? den finder vel bare i forgårs antal?
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 19:25 #24
Ja, det er vel hvor mange forskellige der har være på i de sidste 24 timer. Det er
vel også de fleste. Men du har åbenbart ikke forklaret det godt nok.
Avatar billede Slettet bruger
14. juli 2004 - 19:41 #25
nej, det må du undskylde

jeg vil godt finde ud af, hvor mange der var online, det døgn der var flest online på ét døgn... Sig til hvis du ikke forstår det
Avatar billede Slettet bruger
14. juli 2004 - 19:45 #26
det skal bruges på www.balmer1.frac.dk , under "flest online"
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 19:46 #27
...og du har tiden for hvert besøg målt i i time(), altså sekunder siden verdens skabelse?

Det kunne være smart at banke et DATE-felt ind:  '2004-07-14'
Avatar billede Slettet bruger
14. juli 2004 - 19:47 #28
nåh ja
Avatar billede Slettet bruger
14. juli 2004 - 19:51 #29
så der står 14-07-04
Avatar billede Slettet bruger
14. juli 2004 - 19:53 #30
så skal man bruge

$query = mysql_query("SELECT * FROM counter");
$row = mysql_fetch_array($query);
explode($row, "-");

og så er jeg lidt lost
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 20:01 #31
Nej så der står '2004-07-14' sådan som datoer skal skrives.

Så kan du umiddelbart lave en group by på datoen og ip-nummeret, en sortering, og
en limit 1. Så kommer det tal du vil have.

Men lad nu være med at lave den sql ved hvert eneste besøg på siden. Den koster, og
ændrer sig ikke så tit. Een gang i døgnet, måske, og selvfølgelig automatisk.
Avatar billede Slettet bruger
14. juli 2004 - 20:06 #32
så står der 2004-07-14

jeg er ikke helt med på hvad querien skal være
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 20:41 #33
Noget i retning af, afhængig af dine feltnavne:

  select count(distinct ip) as antal from stat group by dato order by antal desc limit 1
Avatar billede Slettet bruger
14. juli 2004 - 20:42 #34
kan man godt sige group by antal?
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 20:44 #35
Nej, det skulle man ikke kunne. Hvorfor?
Avatar billede Slettet bruger
14. juli 2004 - 20:44 #36
jeg mener order by antal... sorry
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 20:47 #37
Ja, det skulle man kunne. Tror du ikke på mig? ;)
Avatar billede Slettet bruger
14. juli 2004 - 20:47 #38
:) antal lyder ikke helt engelsk, og den siger fejl :/
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 20:49 #39
Antal er ikke engelsk, nej. Prøv at læse hvad jeg skriver ovenfor.
Avatar billede Slettet bruger
14. juli 2004 - 20:50 #40
er ikke helt med :/
Avatar billede Slettet bruger
14. juli 2004 - 20:56 #41
skal antal være tid?  altså 2004-07-14 ?
Avatar billede Slettet bruger
14. juli 2004 - 20:59 #42
$koe = mysql_query("SELECT count(distinct ip) AS antal FROM counter GROUP BY tid ORDER BY count(  ) DESC LIMIT 1") or die(mysql_error());
$raek = mysql_num_rows($koe);

er det jeg tror?
Avatar billede erikjacobsen Ekspert
14. juli 2004 - 21:21 #43
Hvis du ikke kan sige

mysql_query("SELECT count(distinct ip) AS antal FROM counter GROUP BY tid ORDER BY antal DESC LIMIT 1") or die(mysql_error());

har du en gammel mysql. Det er heller ikke antal rækker, men værdien i feltet antal, som du skal bruge.
Avatar billede Slettet bruger
15. juli 2004 - 10:48 #44
det må du undskylde, det var en anden fejl der var der, og så troede jeg det var din. jeg prøver lige med din
Avatar billede Slettet bruger
15. juli 2004 - 13:20 #45
jeg har sat det sådan op hvor det virker:

$koe = mysql_query("SELECT count(distinct ip) AS antal FROM counter GROUP BY tid ORDER BY antal DESC LIMIT 0,1") or die(mysql_error());
$hoejst = mysql_fetch_array($koe);
$hojst = $hoejst['antal'];
$dath = $hoejst['tid'];

og som du kan se vil jeg godt have den dato hvor der var flest, kan du hjælpe mig med det...

hvis du vil giver jeg dig 200 point!
Avatar billede Slettet bruger
15. juli 2004 - 13:21 #46
$dath indeholder ingenting når jeg skriver $dath = $hoejst['tid'];
Avatar billede Slettet bruger
15. juli 2004 - 13:27 #47
jeg har fundet ud af det :D
Avatar billede Slettet bruger
15. juli 2004 - 13:47 #48
Det er blevet helt godt, du bliver næsten nødt til at se det: http://balmer1.frac.dk
Avatar billede erikjacobsen Ekspert
15. juli 2004 - 13:51 #49
Så fik du et IP-nummer mere i dag ;)
Avatar billede Slettet bruger
15. juli 2004 - 13:52 #50
jep :D
Avatar billede Slettet bruger
15. juli 2004 - 13:53 #51
kan du finde på nogle flere ting i statistik?
Avatar billede erikjacobsen Ekspert
15. juli 2004 - 13:56 #52
Flot at du kan stave det rigtigt, men nej, jeg kan ikke finde på noget ;)
Avatar billede Slettet bruger
15. juli 2004 - 13:57 #53
er det stavet forkert?
Avatar billede erikjacobsen Ekspert
15. juli 2004 - 14:11 #54
Nej, nu er det rigtigt: statistik
Avatar billede Slettet bruger
15. juli 2004 - 20:51 #55
ok
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