Avatar billede cmau Nybegynder
12. oktober 2004 - 16:11 Der er 36 kommentarer og
1 løsning

Sjove statistikker?

hey ;D jeg er i gang med et lille projekt (STORT) .. se det på  http://cmau.woox.dk

Jeg er så igang emd at lave lidt statistikker over alder, points, køn, gennemsnit også..

Så ville jeg høre om der var nogle der havde en god ide til en sjov statistik!?..
Avatar billede leif Seniormester
12. oktober 2004 - 16:21 #1
Er siden lang tid om at loade normalt ?
Avatar billede cmau Nybegynder
12. oktober 2004 - 16:21 #2
serveren er lidt ustabil lige nu.. ved ik lige hvad der er galt
Avatar billede cmau Nybegynder
12. oktober 2004 - 16:27 #3
Ingen der har nogel idéer?
Avatar billede leif Seniormester
12. oktober 2004 - 16:32 #4
Prøv til at starte med lidt tålmodighed.

Sorry, kan ikke lade være, men lad lige folk vi tid til at læse dit spm. ! Vi sidder her ikke 24 timer i døgnet alle sammen !
Avatar billede cmau Nybegynder
12. oktober 2004 - 16:37 #5
Ved jeg godt.. men du ser det da.. har du nogle ideer?
Avatar billede jakoba Nybegynder
12. oktober 2004 - 17:04 #6
Nok den 'sjoveste' statistik jeg har set var på TDC's opasia portal for nogen år siden.
En browserstatistik der viste at kun 0,3% brugte Netscape. Lidt besynderligt da Nestcape ellers tod på 10-11 % i de fleste statistikker dengang.

Så prøvede jeg at kikke på www.opasia.dk med Netscape og den crashede. et rigtigt supercrash hvor maskinen ska slukkes og genstartes med discheck før man kan komme igang igen.

Og det var så nok også forklaringen på at kun meget få [af opasias brugere] brugte Netscape.

mvh JakobA
Avatar billede cmau Nybegynder
12. oktober 2004 - 23:14 #7
mener du derved at jeg skulle brugernes browsere?.. det er der ikke så mange der ville få noget ud af.. det er jo kun nørder der er intresserede i det.. ;)
Avatar billede cmau Nybegynder
12. oktober 2004 - 23:15 #8
der skulle står gemme brugernes browsere?
Avatar billede Slettet bruger
12. oktober 2004 - 23:51 #9
"Underlige" ting, man kunne lave statistik over:

Længden af brugernavne.
Mest brugte bogstaver i brugernavne.

Eller måske tage nogle af dine allerede eksisterende statistikker og også lave dem opdelt på køn eller aldersgrupper. Er drengenes gennemsnitsalder for eksempel den samme som pigernes? Er kønsfordelingen forskellig i forskellige aldersgrupper?
Avatar billede cmau Nybegynder
13. oktober 2004 - 10:03 #10
sandbox > Hvordan ville du lave så den fænder gennemsnittet af længden af brugernavne? Og hvordan ville du finde ud af hvilket bogstav der er mest brugt?

Kan nemlig ikke lige selv finde på det :/
Avatar billede cmau Nybegynder
13. oktober 2004 - 10:06 #11
finder*
Avatar billede Slettet bruger
13. oktober 2004 - 13:07 #12
Den første er ikke så svær, men jeg har ikke afprøvet den:

SELECT AVG(CHAR_LENGTH(brugernavn)) as gennemsnit

Den anden kan jeg heller ikke gennemskue selv - ikke uden at skulle lave en masse udregning i PHP eller holde en ekstra tabel bare for dette.
Avatar billede cmau Nybegynder
13. oktober 2004 - 13:23 #13
Det du lavede der virkede, men hvad så med den anden statistik er der nogle der ved hvordan man laver den? (Mest brugte bogstaver i brugernavne)
Avatar billede Slettet bruger
13. oktober 2004 - 13:40 #14
Her er den PHP-beregnede løsning. Bemærk, at den kan nok være lidt tung at køre.

$bogstaver=array();
$result=mysql_query("SELECT brugernavn FROM tabel") or die(mysql_error);
while($row=mysql_fetch_assoc($result)){
  $navn=strtolower($row['brugernavn']); // Der er ikke forskel på store og små bogstaver

  $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
 
  foreach($chars as $bogstav){
    $bogstaver[$bogstav]=isset($bogstaver[$bogstav])?$bogstaver[$bogstav]+1:1;
  }
}
Avatar billede cmau Nybegynder
13. oktober 2004 - 13:44 #15
Hvordan laver msn så den skriver hvor mange % af pointsene, som pigerne ejer?

tabel: brugere
sex(der finde ud af køn): P //P for piger, D for drenge
Avatar billede Slettet bruger
13. oktober 2004 - 13:46 #16
Bagefter er $bogstaver['a'] lig med antallet af a'er osv.

Listen kan sorteres med arsort:

arsort($bogstaver,SORT_NUMERIC);
reset($bogstaver);
Avatar billede Slettet bruger
13. oktober 2004 - 13:48 #17
SELECT SUM(point), sex FROM brugere GROUP BY sex

Den giver dig to tal: Total point for drenge og total point for piger.
Avatar billede cmau Nybegynder
13. oktober 2004 - 13:52 #18
den her:

<?
include('sql.php');
$bogstaver=array();
$result=mysql_query("SELECT brugernavn FROM brugere") or die(mysql_error);
while($row=mysql_fetch_assoc($result)){
  $navn=strtolower($row['brugernavn']); // Der er ikke forskel på store og små bogstaver

  $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
 
  foreach($chars as $bogstav){
    $bogstaver[$bogstav]=isset($bogstaver[$bogstav])?$bogstaver[$bogstav]+1:1;

  }
}
?>

kunne ikke forstå :( den skriver ik noget. Så skriv du det her:

Bagefter er $bogstaver['a'] lig med antallet af a'er osv.

Listen kan sorteres med arsort:

arsort($bogstaver,SORT_NUMERIC);
reset($bogstaver);

kan du prøve at sætte det sammen?..

________________________________________________________________________

Så den her:

SELECT SUM(point), sex FROM brugere GROUP BY sex

Den giver dig to tal: Total point for drenge og total point for piger.

Hvordan udskrives det?
Avatar billede cmau Nybegynder
13. oktober 2004 - 13:54 #19
den der der finder du af det med bogstaverne skal jo kun skrive hvilket bogstav der er mest brugt i brugernavne!
Avatar billede Slettet bruger
13. oktober 2004 - 14:18 #20
<?php
include('sql.php');
$bogstaver=array();
$result=mysql_query("SELECT brugernavn FROM brugere") or die(mysql_error);
while($row=mysql_fetch_assoc($result)){
  $navn=strtolower($row['brugernavn']); // Der er ikke forskel på store og små bogstaver

  $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

  foreach($chars as $bogstav){
    $bogstaver[$bogstav]=isset($bogstaver[$bogstav])?$bogstaver[$bogstav]+1:1;

  }
}

arsort($bogstaver,SORT_NUMERIC);
reset($bogstaver);

$taeller=5; // Hvor mange top-bogstaver vil du have vist?

echo "De mest brugte bogstaver:";
echo "<ol>";

foreach($bogstaver as $bogstav => $antal){
  echo "<li>$bogstav : $antal</li>";
  if(--$taeller==0) { break;)
}

echo "</ol>";

?>
Avatar billede Slettet bruger
13. oktober 2004 - 14:27 #21
$result=mysql_query("SELECT SUM(point)as total, sex FROM brugere GROUP BY sex");
while($row=mysql_fetch_assoc($result)){
  if($row['sex']=='D') {
    $drengepoint=$row['total'];
  } else {
    $pigepoint=$row['total'];
  }
}
$totalpoint=$drengepoint+$pigepoint;

echo "Der er i alt $totalpoint, og pigerne har ";
echo number_format(($pigepoint/$totalpoint)*100,2,',');
echo " procent af dem."
Avatar billede cmau Nybegynder
13. oktober 2004 - 14:39 #22
Kan du ikke lave en der kun udskriver det bogstav der mest er brugt og ik andet?.. det virker nemlig heller ikke den du skrev der oppe...
Avatar billede cmau Nybegynder
13. oktober 2004 - 14:41 #23
og den der med point kan jeg heller ikke finde ud af..
Avatar billede cmau Nybegynder
13. oktober 2004 - 14:43 #24
kan den med points ikke bare SELECT SUM(point) AS total FROM brugere WHERE sex='P'

også omregne til procent?
Avatar billede cmau Nybegynder
13. oktober 2004 - 14:46 #25
den med procent skal bare laves sådan her:

$antal_ialt = mysql_num_rows(mysql_query("SELECT SUM(point) FROM"));

$antal_drenge = mysql_num_rows(mysql_query("SELECT SUM(point) FROM brugere WHERE sex='D'"));
$procent_drenge = $antal_drenge/$antal_ialt*100;

echo "$procent_dreng";

Ikke?
Avatar billede Slettet bruger
13. oktober 2004 - 14:48 #26
Kun hvis du allerede har den totale pointsum fra en anden statistik - det kan jo ikke lade sig gøre at finde ud af hvor mange procent af X et tal er, uden at kende X.

Hvis du retter denne del

$taeller=5; // Hvor mange top-bogstaver vil du have vist?

echo "De mest brugte bogstaver:";
echo "<ol>";

foreach($bogstaver as $bogstav => $antal){
  echo "<li>$bogstav : $antal</li>";
  if(--$taeller==0) { break;)
}

echo "</ol>";


til

$mest=each($bogstaver);
echo "Det mest brugte bogstav er '{$mest['key']}' som er brugt {$mest['value']} gange.";
Avatar billede cmau Nybegynder
13. oktober 2004 - 14:52 #27
hmm bruger denne kode:

<?php
include('sql.php');
$bogstaver=array();
$result=mysql_query("SELECT brugernavn FROM brugere") or die(mysql_error);
while($row=mysql_fetch_assoc($result)){
  $navn=strtolower($row['brugernavn']); // Der er ikke forskel på store og små bogstaver

  $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

  foreach($chars as $bogstav){
    $bogstaver[$bogstav]=isset($bogstaver[$bogstav])?$bogstaver[$bogstav]+1:1;

  }
}

arsort($bogstaver,SORT_NUMERIC);
reset($bogstaver);

$mest = each($bogstaver);
echo "Det mest brugte bogstav er '$mest['key']' som er brugt $mest['value'] gange.";
?>

den skriver dette: http://cmau.woox.dk/s.php

Smutter.. Skal ud og skate med mine venner!
Avatar billede Slettet bruger
13. oktober 2004 - 14:54 #28
Hvis du nu skrev koden, som jeg havde vist den og ikke udelader {}-tegn, så ville det nok virke bedre.
Avatar billede cmau Nybegynder
13. oktober 2004 - 16:27 #29
okay nu er den sådan her:

<?php
include('sql.php');
$bogstaver=array();
$result=mysql_query("SELECT brugernavn FROM brugere") or die(mysql_error);
while($row=mysql_fetch_assoc($result)){
  $navn=strtolower($row['brugernavn']); // Der er ikke forskel på store og små bogstaver

  $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

  foreach($chars as $bogstav){
    $bogstaver[$bogstav]=isset($bogstaver[$bogstav])?$bogstaver[$bogstav]+1:1;

  }
}

arsort($bogstaver,SORT_NUMERIC);
reset($bogstaver);

$mest = each($bogstaver);
echo "Det mest brugte bogstav er '{$mest['key']}' som er brugt {$mest['value']} gange.";
?>

http://cmau.woox.dk/s.php se den skriver ik noget!
Avatar billede Slettet bruger
13. oktober 2004 - 16:39 #30
OK, så må vi igang med at finde fejlen. Start med at lave denne linie lige efter echo-linien, så vi kan se, hvad $bogstaver indeholder.

print_r($bogstaver);
Avatar billede cmau Nybegynder
13. oktober 2004 - 18:30 #31
hmm.. bogstaver inde holder kun Array ()

med denne kode:

<?php
include('sql.php');
$bogstaver=array();
$result=mysql_query("SELECT brugernavn FROM brugere") or die(mysql_error);
while($row=mysql_fetch_assoc($result)){
  $navn=strtolower($row['brugernavn']); // Der er ikke forskel på store og små bogstaver

  $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

  foreach($chars as $bogstav){
    $bogstaver[$bogstav]=isset($bogstaver[$bogstav])?$bogstaver[$bogstav]+1:1;

  }
}

arsort($bogstaver,SORT_NUMERIC);
reset($bogstaver);

$mest = each($bogstaver);
print_r($bogstaver);
echo "Det mest brugte bogstav er '{$mest['key']}' som er brugt {$mest['value']} gange.";
?>

http://cmau.woox.dk/s.php
Avatar billede cmau Nybegynder
13. oktober 2004 - 18:33 #32
hov sådan her:

echo "Det mest brugte bogstav er '{$mest['key']}' som er brugt {$mest['value']} gange.";
print_r($bogstaver);

men så står der bare Array () efter det andet.
Avatar billede Slettet bruger
13. oktober 2004 - 18:51 #33
Argh... Jeg havde glemt at rette $str til $navn i den linie, der splitter navnet op i bogstaver.

$chars = preg_split('//', $navn, -1, PREG_SPLIT_NO_EMPTY);
Avatar billede cmau Nybegynder
14. oktober 2004 - 15:53 #34
så nu virker det ;) http://cmau.woox.dk/s.php .. arrayen er der stadig og udskriver alt det andet..
Avatar billede Slettet bruger
14. oktober 2004 - 15:58 #35
Den kan du bare fjerne igen. (Det er print_r-linien.)
Avatar billede cmau Nybegynder
14. oktober 2004 - 17:09 #36
yeah ;D takker.. har ikke brug for mere hjælp nu.. Så smider du lige et svar?
Avatar billede Slettet bruger
14. oktober 2004 - 17:15 #37
Ja. ;-)
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





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis