Avatar billede agora_live Nybegynder
29. januar 2010 - 09:23 Der er 5 kommentarer og
1 løsning

Kan man tælle et antal resultater?????

Jeg ved ikke lige hvordan jeg skal spørge til dette, men hvis jeg har en database med følgende værdier i hvert sit felt:

1 2 2 2 2 1 1 2 1 2 2 1 1 1 2 1 1

Er der så nogen måde at tælle hvor mange gange 2 har været indtastet eftergølgende og hvor mange gange 1 2 1 har været indtastet?

Håber nogle forstår dette spørgsmål :-)

Det ligger i en "standard" MYSql base, som bliver tilgået via php.
Avatar billede stinejh1980 Nybegynder
29. januar 2010 - 09:29 #1
Det er lidt svært at forstå hvilke værdier er i hvilke celler i din tabel.
Kan du fortælle mere?
Avatar billede acore Ekspert
29. januar 2010 - 10:09 #2
Det korte svar er JA.

Det aktuelle løsning afhænger af omstændighederne - som du ikke fortæller om.

Mulighed 1:
Du kan altid optælle frekvensen af en given værdi med COUNT. Fx
SELECT COUNT(*) WHERE f1='1'
SELECT COUNT(*) WHERE f1='2'

Hvis du vil samle flere SELECT svar kan det gøres med UNION

Mulighed 2:
Da der kun er svarmulighederne 1 eller 2, kan du udnytte det:
SELECT COUNT(*) AS n, SUM(f1) AS sf1, SUM(f2) AS sf2...

I PHP kan du så få antallet af hhv 1-svar og 2-svar for et felt som følger:

n2 = sf1 - n;
n1 = n - n2;
Avatar billede stinejh1980 Nybegynder
29. januar 2010 - 10:12 #3
Jeg er enig med acore.

Jeg ville have foreslået at du fyldte et dataset med væredierne af Select * from [Tabel] Where [ditfelt]=1 og derefter lavede et count af rows.
Avatar billede agora_live Nybegynder
29. januar 2010 - 12:51 #4
Der er én celle med ét tal i hvert:
field1
1
2
2
2
2
1
1
2
1
2
2
1
1
1
2
1
1

Nu vil jeg gerne kunne trække information ud omkring hvor mange gange 2 er blevet indtastet fx. 3 gange efterfølgende, eller fx . kombinationen 1 2 1...

Håber det svarer lidt bedre på spørgsmålet
Avatar billede stinejh1980 Nybegynder
29. januar 2010 - 12:59 #5
Det kan jeg deværre ikke hjælpe med.

Jeg må nok indrømme at jeg ikke helt forstår meningen, derfor er det svært at udtænke en løsning.
Avatar billede agora_live Nybegynder
29. januar 2010 - 16:29 #6
Meningen er at tallene 1 og 2 er resultater fra et online spil.

1 = vundet
2 = tabt

manuelt trækker jeg bare en liste over resultaterne som så ligger i en rækkefølge som fx 122112121121212211121121212 og så søger jeg blot med en browser efter en kombination som 1221 eller 1222.

Jeg får så automatisk et antal gange den enkelte tal kombination har været spillet. Dette giver mig et billede af tendensen for det enkelte spil og hvordan resultatet statistisk ser ud

Nu kunne jeg godt tænke mig at kunne få det præsenteret på en noget smartere måde, samt med mulighed for at søge på dato og tidspunkt, som jeg samtidigt kan vælge at ligge i databasen

Dato og tid er ikke nødvendig at blive præsenteret lige nu da det blot er en eventuel måde at præsentere informationerne på jeg leder efter

I dag hiver jeg blot informationerne således:

$resultat = mysql_query("SELECT * FROM resultater);
while($row = mysql_fetch_array($resultat))
{
  $udfald = $row['field1'];

echo $udfald;
}

Nu mangler jeg blot nogle ideer til hvordan jeg kan vælge et specificeret udfald som ligger i flere felter efterfølgende af hinanden...

Tak for jeres hjælp indtil videre :-)
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
Computerworld tilbyder specialiserede kurser i database-management

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