Avatar billede jasv Nybegynder
17. april 2003 - 23:43 Der er 3 kommentarer

Turneringsdatabase - spejlblank

Godaften,

Argh! Bliver aldrig klogere, så nu søger jeg hjælp udefra. Har kigget på mysql.com, php.net, og mener da også jeg forstår enkeltdelene af alt dette, men at sætte det sammen, bruge det osv... næ nej, der står jeg af :o(
Som at kunne forstå et fremmedsprog, uden selv at kunne sige et ord. ØV!

Nå, til sagen:

Jeg bestyrer en turnering med 6 spillere, der spiller x antal runder mod hinanden (1 mod 1 - som en fodboldkamp).
Udfaldet af kampen kan være sejr, uafgjort og nederlag, og måles i decimaltal sat op som i en fodboldkamp (= "1357,15 - 150,5").
Disse tal (dvs 6 tal i alt pr runde) skal jeg smide ind i en database - yes sir, så langt er jeg med, MEN:

Derefter skulle den gerne kunne sætte tallene sammen, så den fortolker de seks tal som tre kampe (som en fodboldscore står opført), altså fra:
"tal 1"
"tal 2"
"tal 3"
"tal 4"
"tal 5"
"tal 6"
til:
"tal 1" - "tal 2"
"tal 3" - "tal 4"
"tal 5" - "tal 6"
hvor de tre på højre side af stregen betragtes som udehold.
Udeholdene skal i en tabel (gevinstjagt) beholde deres fulde rundeudbytte, men i hovedturneringen skal der trækkes -20% fra deres gevinst.

-Herudfra skal den kære database gerne selv kunne komme frem til resultatet af kampen (vunden, tabt, uafgjort), give point efter det (3 point for sejr, 1 point for uafgjort, 0 for tabt)...

I ovennævnte "gevinstjagt" indsættes alle spilleres gevinster. Efter x antal runder laves en total, hvor den med højest samlet gevinst får 3 point, næsthøjest 2, tredjehøjest 1 point.
Herefter starter man forfra med en ny gevinstjagt og gentager ovenstående x gange i løbet af turneringen.

Slutteligt skal jeg altså ende op med at kunne hente en stilling, der viser følgende:
Placering | Navn | Vundne | uafgjort | tabt | Score for | score mod | point fra gevinstjagter (den nævnte anden sammenhæng) | point total

Jeg er blank!
Det sidste er jeg udmærket godt klar over tilhører php-afdelingen og det er for så vidt (så vidt jeg kan se) det mindste af det.
Mine kvaler ligger i db-arkitekturen:
-hvordan skal den se ud,
-kan man lægge udregningerne direkte ind her, så php i det store hele skal koncentrere sig om at udvælge og sortere data,
-hvis ja: hvordan?

Jeg har sat point til 200.
Mest af alt skyldes det, at jeg ikke har noget konkret, men kun ovenstående skitse.
Jeg håber RIGTIG meget, at I kan hjælpe... er virkelig ved at give op. Derfor er det nok ikke nok med et lille godt råd a la "prøv med en insert *", jeg skal som en 5-årig føres et godt stykke mod målet, før jeg kan tørre øjnene...

Håber alligevel I lader jer forbarme over mig :o)

TAK!
Avatar billede mortenfn Nybegynder
22. april 2003 - 22:02 #1
umidelbart ser det let ud, men jeg forstår ikke helt det med dicimal tallet. Normalt(!) giver en vunden kamp 2 el. 3 point en uafgjort 1, og en tabt 0. Hvis du brugte dette system ville det være overordeneligt let at lave. Prøv at forklade de point på en anden måde evt. et link

morten
Avatar billede jasv Nybegynder
23. april 2003 - 09:39 #2
Ser let ud - glæder mig meget... ehr ;o)

Forklaring: Du har fuldstændig ret - sejr giver tre point, uafgjort 1p og nederlag 0. Decimaltallene er det, der bruges til at beregne, hvorvidt den ene eller anden har vundet.
I eksemplet ovenfor er "tal 1" lig spiller 1's gevinst, "tal 2" lig spiller 2's gevinst osv. Det er disse tal, der skrives som decimaltal, dvs:

1510,20 (="tal 1") - 210,75 (="tal ")

Her har spilleren med "tal 1" altså sejret, da hans gevinst er større end modstanderens. Spilleren får derefter 3 point i ligatabellen, mens gevinsterne bliver spillerens målscore, nøjagtig som det kendes fra fodbold, håndbold mv. Konkret skal det sådan ud:

navn            V  U  T          Score      point fra gevinstjagt  point
"spiller 1"    1  0  0    1510,20 - 210,75          0                3

Håber det gjorde det klarere
Avatar billede mortenfn Nybegynder
24. april 2003 - 19:48 #3
ok og du bruger mysql - kampen er mellem dig og mig, du scorer 1024 flødeboller og jeg kun 800

db.indhold
kamp1 dig 3 1024  800 0
kamp1 mig 0  800 1024 0

sår er det blot select - med "where","order by","count"
eks.
select count(point) as antal from db.indhold where navn='dig' and point='3'

så får du det antal kampe du har vundet.

og så fremdeles

http://www.thorsnet.dk/index.php?dok=mysql6
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