Avatar billede Slettet bruger
14. marts 2009 - 09:30 Der er 9 kommentarer og
1 løsning

Hjælp til kampgenerator

Hej!

Jeg står over en lille udfordring, mht. at lave en kampgenerator. Det, kampgeneratoren skal gøre, er at generere et kampprogram ud fra flere MySQL tabeller.

Jeg har tabellerne:
matches (id, home_user_id, guest_user_id, league_id, matchdate)
users (id, league_id)
leagues (id, navn)

Kampgeneratoren skal indsætte kampe i "matches" tabellen, men det skal være sådan, at en bruger kun møder mod en spiller fra den samme liga. En spiller skal møde alle de andre spillere to gange; en gang på hjemmebane, og en gang på udebane.
Hvert hold skal spille én kamp om ugen("matchdate") (så vidt muligt).

Hvordan skal sådan et script bygges op? Eventuelt noget pseudo-kode.
Er det overhovedet muligt at lave i php, eller skal der "stærkere" sprog til?

Tak!
Avatar billede jensgram Nybegynder
14. marts 2009 - 09:48 #1
Jeg svarer kun på den nemme: Ja, det er muligt i PHP :)
Avatar billede Slettet bruger
14. marts 2009 - 09:50 #2
Det var da altid noget :)
Avatar billede majbom Novice
14. marts 2009 - 12:37 #3
kan du ikke bare løbe alle brugere igennem og for hver bruger oprette kampe med alle andre brugere end brugeren selv?

på den måde bliver der lavet en kamp på hjemmebane og en kamp på udebane.

skal der i alt kun være en kamp om ugen, eller kan der godt være flere, bare med andre hold? evt. hver dag?
Avatar billede Slettet bruger
14. marts 2009 - 12:54 #4
Det var tænkt sådan, at matchdate er den dato, kampen senest skal spilles - altså en form for deadline.
Hver bruger skal spille en kamp om ugen.
Avatar billede Slettet bruger
15. marts 2009 - 09:10 #5
Jeg har siddet og kigget lidt på det.

Indtil videre har jeg genereret alle kampene, men problemet er at gøre sådan, at hvert hold kun skal spille én kamp om ugen.
Jeg har følgende kode:

$leagues = mysql_query("SELECT id FROM leagues") or die(mysql_error());
while($league = mysql_fetch_array($leagues))
{
    $league_id = $league['id'];
    $users= mysql_query("SELECT * FROM users WHERE league = $league_id") or die(mysql_error());
    while($user = mysql_fetch_array($users))
    {
        $uid = $user['id'];
        $guests = mysql_query("SELECT * FROM users WHERE league=$league_id AND id != $uid") or die(mysql_error());
        while($guest = mysql_fetch_array($guests))
        {
            echo $uid . " - " . $guest['user_id']."<br>";
        }
    }
}

Her genererer den alle kampene, og udskriver dem. Men hvordan skal jeg få sat deadlinen ("matchdate") sådan, at brugerne kun spiller én kamp om ugen?
Avatar billede Slettet bruger
20. marts 2009 - 15:15 #6
Lukker.
Avatar billede majbom Novice
22. marts 2009 - 20:58 #7
selv tak ;)
Avatar billede Slettet bruger
22. marts 2009 - 21:05 #8
Du må undskylde hvis du gerne ville have point, men jeg troede ikke, at der stadig var interesse for spørgsmålet, da der ikke var kommet svar.
Hvis du ønsker nogle point, skal jeg med glæde oprette et spørgsmål til dette :)
Avatar billede majbom Novice
25. marts 2009 - 11:07 #9
det var ikke point jeg tænkte på, det var mere fordi jeg synes det ser ud til at du brugte den metode jeg foreslog til at genere kampene :)
Avatar billede Slettet bruger
25. marts 2009 - 15:20 #10
Okay - og ja, jeg brugte din metode. Tak ;)
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