struktura tabeli | id | id_team1 | id_team2 |
I teraz chcial bym uzyskac taki efekt zeby pobrac cala tabele SPOTKANIA i podzielic ja na kolejki tak a by w kazdej kolejce bylo (w tym przypadku 6) niepowtarzajacych sie meczy. Narazie to co mi sie udalo zrobic to podzielic tabele na kolejki fuckjia array_chunk jednak nie umiem sobie poradzic zeby w kazdej kolejce byly inne nie powtazajace sie spotkania prubowalem to ztobic od strony zapytania SQL jednak tam sie chyba nieda.
Dzieli na kolejki
<?php $zapytanie = 'SELECT id_team1, id_team2 FROM spotkania'; $mecze[] = $rekord; } $num = $num_rows / 2; for ($i = 0; $i < 11; $i++) { $numer = $i + 1; \"; for ($j = 0; $j < 6; $j++) { $team1 = $table[$i][$j][id_team1]; $team2 = $table[$i][$j][id_team2]; \"; } } ?>
Tak sobie myslac to chyba by trzeba stworzyc funkcje ktora bu tworzyla nowa tabele wielowymiarowa i sprawdzac czy wartosci sie nie powtarzaja.
Tak zobrazuje czy dobrze mysle:
<?php kolejka [0] => [0] => // Wypisuje pierwsze spotkanie pierwszej kolejki [0] => 3 [1] => 4 [1] => // Wypisuje drugie spotkanie pierwszej kolejki gdzie [0][1][0][1] != [0][0][0][1] [0] => 3 [1] => 4 [2] => // Wypisuje trzecie spotkanie pierwszej kolejki gdzie [0][2][0][1] != [0][1][0][1] i [0][0][0][1] [0] => 3 [1] => 4 kolejka [1] => [0] => // Wypisuje pierwsze spotkanie drugiej kolejki gdzie [1][0][0][1] != [0][0][0][1] i [0][1][0][1] i [0][2][0][1] [0] => 3 [1] => 4 [1] => // Wypisuje drugie spotkanie drugiej kolejki gdzie [1][1][0][1] != [1][0][0][1] i {[0][0][0][1] i [0][1][0][1] i [0][2][0][1]} [0] => 3 [1] => 4 [...] => // Wypisuje drugie spotkanie drugiej kolejki gdzie [1][...][0][1] != [1][0][0][1] i [1][1][0][1] i ... i {[0][0][0][1] i ... } [0] => 3 [1] => 4 ?>
Wczoraj siedzialem do rana i cos stworzylem tylko nie do konca dziala porawnie i jest malo elastyczne poniewarz ja sobie ustalilem ze jest 12 druzyn ale co bedzie jesli druzyn bedzie 14 lub wiecej. Nie wiem jak rozwiazac warunek w petli if
<?php $zapytanie = 'SELECT id_team1, id_team2 FROM spotkania'; $mecze[] = $rekord; } for ($k = 0; $k < 4; $k++) { // tworzy kolejki $kolejka[$k][] = array($mecze[0][id_team1], $mecze[0][id_team2]); // wstawia pierwsze spotkanie na poczatku kazdej kolejki } //------------------------ $o = 0; // wartosc poczatkowa odejmowana w tabeli del $y = 1; // od ktorego rekordu ma zaczac sprawdzac tabela mecze $spr = 0; // ktory rekord ma pierwszy porownac z tabeli kolejka for ($f = 0; $f < 5; $f++) { // tworzy 5 nastepnych spotkan w kolejce for ($l = 0; $l < $y; $l++) { // wykonuje sie tyle razy ile jest potrzebne ma wykonanie petli if if ($kolejka[$k][$spr][0] != $mecze[$y][id_team1] && $kolejka[$k][$spr][1] != $mecze[$y][id_team1] && // porownuje po koleji rekordy $kolejka[$k][$spr][0] != $mecze[$y][id_team2] && $kolejka[$k][$spr][1] != $mecze[$y][id_team2] && $kolejka[$k][$spr][0] && $kolejka[$k][$spr - 1][0] != $mecze[$y][id_team1] && $kolejka[$k][$spr][1] && $kolejka[$k][$spr - 1][1] != $mecze[$y][id_team1] ) { // echo $mecze[$y][id_team1]. \" - \" .$mecze[$y][id_team2]. \" \"; $kolejka[$k][] = array($mecze[$y][id_team1], $mecze[$y][id_team2]); // dodaje spotkanie do tabeli kolejka break; } else { $y++; } } $spr++; } } } ?>
ten kod generuje dobrze 3 kolejki bo nawet jak juz dopisywalem dalesze warunki to mozna powiedziec ze sie wieszalo moze ma ktos pomysl jak to ulepszyc
