Avatar billede henninghabor Nybegynder
26. august 2004 - 10:04 Der er 1 kommentar og
1 løsning

Opret kampe - hjemme- og udebane.

Hej,

Jeg har lavet en liga hvor der max kan være 5 hold i hver.
Til denne liga hører 20 kampe, hvor de 5 hold skal møde hinanden 2 gange: 1 kamp på hjemmebane og 1 kamp på udebane for hver modstander.

Jeg kan sq bare ikke finde ud af at ligge det i kamp tabellen. Hvordan gør jeg?

    open_db();

    $array = sql_request_and_response("SELECT * FROM team WHERE team_id = '$_REQUEST[tid]'");

    for($i = 0;$i < sizeof($array);$i++)
    {
        extract($array[$i]);

        $leag_id = $team_league;
    }

    $array = sql_request_and_response("SELECT * FROM game WHERE leag_id = '$leag_id' AND game_home = ''");

    for($i = 0;$i < sizeof($array);$i++)
    {
        extract($array[$i]);

        $home[] = $game_id;
    }

    sql_query("UPDATE game SET game_home = '$_REQUEST[tid]' WHERE game_id = '$home[0]'");
    sql_query("UPDATE game SET game_home = '$_REQUEST[tid]' WHERE game_id = '$home[1]'");
    sql_query("UPDATE game SET game_home = '$_REQUEST[tid]' WHERE game_id = '$home[2]'");
    sql_query("UPDATE game SET game_home = '$_REQUEST[tid]' WHERE game_id = '$home[3]'");

    $array = sql_request_and_response("SELECT * FROM game WHERE leag_id = '$leag_id' AND game_home  <> '$_REQUEST[tid]' AND game_away = ''");

    for($i = 0;$i < sizeof($array);$i++)
    {
        extract($array[$i]);

        $away[] = $game_id;
    }

    sql_query("UPDATE game SET game_away = '$_REQUEST[tid]' WHERE game_id = '$away[0]'");
    sql_query("UPDATE game SET game_away = '$_REQUEST[tid]' WHERE game_id = '$away[1]'");
    sql_query("UPDATE game SET game_away = '$_REQUEST[tid]' WHERE game_id = '$away[2]'");
    sql_query("UPDATE game SET game_away = '$_REQUEST[tid]' WHERE game_id = '$away[3]'");

    close_db();
Avatar billede henninghabor Nybegynder
26. august 2004 - 10:07 #1
Tabellen for kampe ser sådan ud:

game_id -> Indeholder kampens unikke ID
leag_id -> Indeholder ID for den liga kampen hører til
game_home -> Indeholder hjemmeholdets ID
game_away -> Indeholder udeholdets ID
Avatar billede henninghabor Nybegynder
26. august 2004 - 18:26 #2
Jeg fandt selv en løsning - Måske ikke den bedste, men det virker efter hensigten...

    open_db();

    $array = sql_request_and_response("SELECT * FROM team WHERE team_id = '$_REQUEST[tid]'");

    for($i = 0;$i < sizeof($array);$i++)
    {
        extract($array[$i]);

        $leag_id = $team_league;
    }

    $array = sql_request_and_response("SELECT * FROM league WHERE leag_id = '$leag_id'");

    for($i = 0;$i < sizeof($array);$i++)
    {
        extract($array[$i]);

        $leag_teams = $leag_teams;
    }

    if($leag_teams == 1)
    {
        $array = sql_request_and_response("SELECT * FROM game WHERE leag_id = '$leag_id'");

        for($i = 0;$i < sizeof($array);$i++)
        {
            extract($array[$i]);

            $home[] = $game_id;
        }

        shuffle($home);

        for($i = 0;$i < 4;$i++)
        {
            $no = $i + 1;

            sql_query("UPDATE game SET game_home = '$_REQUEST[tid]', game_away = '$no' WHERE game_id = '$home[$i]'");
        }

        $array = sql_request_and_response("SELECT * FROM game WHERE leag_id = '$leag_id' AND game_home <> '$_REQUEST[tid]'");

        for($i = 0;$i < sizeof($array);$i++)
        {
            extract($array[$i]);

            $away[] = $game_id;
        }

        shuffle($away);

        for($i = 0;$i < 4;$i++)
        {
            $no = $i + 1;

            sql_query("UPDATE game SET game_away = '$_REQUEST[tid]', game_home = '$no' WHERE game_id = '$away[$i]'");
        }
    }

    if($leag_teams == 2)
    {
        sql_query("UPDATE game SET game_home = '$_REQUEST[tid]' WHERE leag_id = '$leag_id' AND game_home = '1'");

        $array = sql_request_and_response("SELECT * FROM game WHERE leag_id = '$leag_id' AND game_home = ''");

        for($i = 0;$i < sizeof($array);$i++)
        {
            extract($array[$i]);

            $home[] = $game_id;
        }

        shuffle($home);

        for($i = 0;$i < 3;$i++)
        {
            $no = $i + 2;

            sql_query("UPDATE game SET game_home = '$_REQUEST[tid]', game_away = '$no' WHERE game_id = '$home[$i]'");
        }

        sql_query("UPDATE game SET game_away = '$_REQUEST[tid]' WHERE leag_id = '$leag_id' AND game_away = '1'");

        $array = sql_request_and_response("SELECT * FROM game WHERE leag_id = '$leag_id' AND game_away = ''");

        for($i = 0;$i < sizeof($array);$i++)
        {
            extract($array[$i]);

            $away[] = $game_id;
        }

        shuffle($away);

        for($i = 0;$i < 3;$i++)
        {
            $no = $i + 2;

            sql_query("UPDATE game SET game_away = '$_REQUEST[tid]', game_home = '$no' WHERE game_id = '$away[$i]'");
        }
    }

    if($leag_teams == 3)
    {
        sql_query("UPDATE game SET game_home = '$_REQUEST[tid]' WHERE leag_id = '$leag_id' AND game_home = '2'");

        $array = sql_request_and_response("SELECT * FROM game WHERE leag_id = '$leag_id' AND game_home = ''");

        for($i = 0;$i < sizeof($array);$i++)
        {
            extract($array[$i]);

            $home[] = $game_id;
        }

        shuffle($home);

        for($i = 0;$i < 2;$i++)
        {
            $no = $i + 3;

            sql_query("UPDATE game SET game_home = '$_REQUEST[tid]', game_away = '$no' WHERE game_id = '$home[$i]'");
        }

        sql_query("UPDATE game SET game_away = '$_REQUEST[tid]' WHERE leag_id = '$leag_id' AND game_away = '2'");

        $array = sql_request_and_response("SELECT * FROM game WHERE leag_id = '$leag_id' AND game_away = ''");

        for($i = 0;$i < sizeof($array);$i++)
        {
            extract($array[$i]);

            $away[] = $game_id;
        }

        shuffle($away);

        for($i = 0;$i < 2;$i++)
        {
            $no = $i + 3;

            sql_query("UPDATE game SET game_away = '$_REQUEST[tid]', game_home = '$no' WHERE game_id = '$away[$i]'");
        }
    }

    if($leag_teams == 4)
    {
        sql_query("UPDATE game SET game_home = '$_REQUEST[tid]' WHERE leag_id = '$leag_id' AND game_home = '3'");

        $array = sql_request_and_response("SELECT * FROM game WHERE leag_id = '$leag_id' AND game_home = ''");

        for($i = 0;$i < sizeof($array);$i++)
        {
            extract($array[$i]);

            $home[] = $game_id;
        }

        shuffle($home);

        for($i = 0;$i < 1;$i++)
        {
            $no = $i + 4;

            sql_query("UPDATE game SET game_home = '$_REQUEST[tid]', game_away = '$no' WHERE game_id = '$home[$i]'");
        }

        sql_query("UPDATE game SET game_away = '$_REQUEST[tid]' WHERE leag_id = '$leag_id' AND game_away = '3'");

        $array = sql_request_and_response("SELECT * FROM game WHERE leag_id = '$leag_id' AND game_away = ''");

        for($i = 0;$i < sizeof($array);$i++)
        {
            extract($array[$i]);

            $away[] = $game_id;
        }

        shuffle($away);

        for($i = 0;$i < 1;$i++)
        {
            $no = $i + 4;

            sql_query("UPDATE game SET game_away = '$_REQUEST[tid]', game_home = '$no' WHERE game_id = '$away[$i]'");
        }
    }

    if($leag_teams == 5)
    {
        sql_query("UPDATE game SET game_home = '$_REQUEST[tid]' WHERE leag_id = '$leag_id' AND game_home = '4'");

        sql_query("UPDATE game SET game_away = '$_REQUEST[tid]' WHERE leag_id = '$leag_id' AND game_away = '4'");
    }

    close_db();
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