Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][SQL][PHP]Losowanie Grup
Forum PHP.pl > Forum > Przedszkole
skala91
Witam, mam pytanie. Otóż, tworzę mistrzostwa do jednej z gier przeglądarkowych i chciałbym zrobić losowe przydzielanie do grupy, grup jest 8 po 4 drużyny. Wie ktoś może jaki skrypt mógłby takie coś zdziałać tongue.gif questionmark.gif

2 sprawa to chciałbym aby w fazie kwalifikacyjnej zostały także losowo przydzielone do siebie drużyny.

Ogólnie to wiedziałbym jak to zrobić ale z duplikatami a taka sytuacja nie może się zdarzyć :].

Z góry dziękuję za uwagę :] i pozdrawiam.
skarabe.pl
  1. $d = range(1, 32); // 32 druzyny
  2. shuffle($d); // mieszamy

Bez duplikatów, dwie linijki. Teraz wystarczy tylko przydzielać kolejne "czwórki" do grup.
skala91
A jak zrobić to wykorzystując baze mySQL??
skarabe.pl
Cytat(skala91 @ 2.08.2010, 16:42:00 ) *
A jak zrobić to wykorzystując baze mySQL??

  1. SELECT id_druzyny, nazwa_druzyny FROM druzyny ORDER BY RAND()
skala91
Czyli np. tekie coś tak:

  1. <?php
  2. $tmp=isset($_GET['losuj']) ? $_GET['losuj'] : "";
  3.  
  4. echo '<a href="losowanie.php?losuj=1">Losuj</a><br>';
  5.  
  6. if ($tmp==1) {
  7. $zapytanie = "SELECT id, nazwa_klubu FROM losowanie ORDER BY RAND();";
  8. $tresc = mysql_query($zapytanie) or die ('Treść Błędu: ' . mysql_error());
  9. ?>
  10.  
  11. <table>
  12. <tr>
  13. <td>ID</td>
  14. <td>NAZWA KLUBU</td>
  15. </tr>
  16. <tr>
  17. <td colspan="2"><hr></td>
  18. </tr>
  19. <?php
  20. while ($rekord = mysql_fetch_assoc($tresc)) { ?>
  21. <tr>
  22.  
  23. <?php if($rekord['udzial']==0) {
  24. for ($c=1; $c=4; $c++) { ?> <td><?php echo '$c'; ?></td> <?php } ?>
  25.  
  26. <td><?php echo $rekord['id'];?></td>
  27.  
  28. </tr>
  29. <?php } } } ?>
  30. </table>
  31.  
  32. </body>
  33. </html>
skarabe.pl
Bardziej coś takiego. Choć niektórych intencji mogę się jedynie domyślać:
  1. <?php
  2. $tmp=isset($_GET['losuj']) ? $_GET['losuj'] : "";
  3.  
  4. echo '<a href="losowanie.php?losuj=1">Losuj</a><br>';
  5.  
  6. if ($tmp==1) {
  7. $zapytanie = "SELECT id, nazwa_klubu FROM losowanie WHERE udzial = 0 ORDER BY RAND();";
  8. $tresc = mysql_query($zapytanie) or die ('Treść Błędu: ' . mysql_error());
  9. ?>
  10.  
  11. <table>
  12. <tr>
  13. <td>LP</td>
  14. <td>ID</td>
  15. <td>NAZWA KLUBU</td>
  16. </tr>
  17. <tr>
  18. <td colspan="3"><hr></td>
  19. </tr>
  20. <?php
  21. $c = 0;
  22. $d = 1;
  23. while ($rekord = mysql_fetch_assoc($tresc)) { ?>
  24. <tr><?php
  25. if ($c % 4 === 0) { ?>
  26. <td colspan="3"><strong>Drużyna <?php echo $d; ++$d; ?></strong></td>
  27. </tr>
  28. <tr><?php
  29. }
  30. ++$c;
  31. ?>
  32. <td><?php echo $c; ?></td>
  33. <td><?php echo $rekord['id'];?></td>
  34. <td><?php echo $rekord['nazwa_klubu'];?></td>
  35. </tr>
  36. <?php } ?>
  37. </table>
  38. <?php } ?>
  39.  
  40. </body>
  41. </html>
skala91
Dzięki :] już jest ok tongue.gif 3x pomóg poleciał tongue.gif to teraz tylko faza kwalifikacyjna została ;/
skarabe.pl
Cytat(skala91 @ 2.08.2010, 22:25:34 ) *
Dzięki :] już jest ok tongue.gif 3x pomóg poleciał tongue.gif to teraz tylko faza kwalifikacyjna została ;/

A jaki masz z nią problem? Napisz dokładnie co chcesz osiągnąć - pierwszy post jest dla mnie trochę niejasny.
skala91
Chcę aby wypisało mi tak:

Drużyna_1 - Drużyna_2
Drużyna_3 - Drużyna_4
[...]
Drużyna_55 - Drużyna_56

także bez duplikatów (ale to już wiem jak zrobić :]) tylko nie wiem jak zrobić żeby dobierało losowo w obu :/

i przy okazji :] sorka że marudzę ale jak zrobić terminarz do tych gryp cool.gif
skarabe.pl
Cytat(skala91 @ 2.08.2010, 23:02:57 ) *
Chcę aby wypisało mi tak:

Drużyna_1 - Drużyna_2
Drużyna_3 - Drużyna_4
[...]
Drużyna_55 - Drużyna_56

także bez duplikatów (ale to już wiem jak zrobić :]) tylko nie wiem jak zrobić żeby dobierało losowo w obu :/

No to lecim standardowo:
  1. $d = range(1, $liczba_druzyn);
  2. shuffle($d); // mieszamy

No i wtedy masz rozlosowane "mecze": $d[0] gra z $d[1], $d[2] gra z $d[3], $d[4] z $d[5] itd.

Cytat(skala91 @ 2.08.2010, 23:02:57 ) *
i przy okazji :] sorka że marudzę ale jak zrobić terminarz do tych gryp cool.gif

Rozwiń temat - jaki terminarz?
skala91
Chodzi o coś takiego, żeby np. recznie nie robić gdy zorganizuję superligę :]

1 kolejka:

3 sierpnia 15:00 Drużyna_1 - Drużyna_2
3 sierpnia 17:00 Drużyna_3 - Drużyna_4
3 sierpnia 17:30 Drużyna_5 - Drużyna_6
3 sierpnia 19:00 Drużyna_7 - Drużyna_8

2 kolejka

4 sierpnia 15:00 Drużyna_1 - Drużyna_4
4 sierpnia 17:00 Drużyna_3 - Drużyna_8
4 sierpnia 17:30 Drużyna_5 - Drużyna_2
4 sierpnia 19:00 Drużyna_6 - Drużyna_7

itd.

[może być bez daty :]
thek
Wiesz... Jakoś pół roku temu było identyczne pytanie na forum. Jak zrobić generowanei terminarz(błąd w tytule specjalnie powtórzyłem byś użył wyszukiwarki tu w serwisie). Tam koleś chociaż się wysilił i znalazł w necie idealnie to czego szukał, ale nie wiedział jak to było zrobione. I radzę skorzystać, bo tam jest nie tylko algorytm, ale i link do owej strony, który w ostateczności możesz wypełnić, co wygeneruje Ci cały terminarz, a Ty go jedynie przekleisz i poprawisz.
skala91
Acha dzięki :]

Jeżeli chodzi o to co napisał martin to nic z tego nie kumam :]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.