Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> losowe przydzielanie nr zawodnika - niepowtarzajace sie
michaleq91
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 13.02.2009

Ostrzeżenie: (0%)
-----


Witam, od razu mówię, że przejrzałem tematy na forum ale nie znalazłem odpowiedzi. Chcę zrobić turniej dla graczy w grze. Graczy ma być 16. Każdy z nich ma otrzymać nr od 1 do 16 ( losowo).

Przykładowa tabela:

id(auto_increment)
nick(nick gracza)
nr(który wylosował)

Czyli np pierwszy gracz się zapisuje i w tabeli zapisują się przykładowe dane:

id 1
nick Adam
nr 14

Nastepny gracz bedzie miał
id 2
nick np jozek
i np nr 2

Każdy następny gracz ma mieć inny nr od poprzedniego.

Próbowałem wielu sposobów, lecz żaden nie przyniósł spodziewanych rezultatów. Z góry dziękuję za pomoc w wykonaniu skryptu.
Jeden z ostatnich sposobów jakie próbowałem to coś takiego ( od razu mówię, że z php jestem przeciętny)

$liczby2 = $db -> Execute("SELECT nr FROM turniej");
$liczby2 = array();
$zbior_liczb = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
unset( $zbior_liczb[$liczby2]);
$wylosowana_liczba = array_rand($zbior_liczb);

$db -> Execute("INSERT INTO turniej (nr, nick) VALUES(".$wylosowana_liczba.",'".$player -> user."')");

'".$player -> user."' ( to od nicku)
Go to the top of the page
+Quote Post
djstrong
post
Post #2





Grupa: Zarejestrowani
Postów: 65
Pomógł: 9
Dołączył: 22.09.2006

Ostrzeżenie: (0%)
-----


można np. użyć shuffle" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
kefirek
post
Post #3





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Można to zrobić tak
  1. <?php
  2. $tab=array();
  3. $wynik = mysql_query("SELECT nr FROM turniej");
  4. if(mysql_num_rows($wynik) > 0) {
  5. while($r = mysql_fetch_assoc($wynik)) {
  6. $tab[]= $r['nr'];
  7. }
  8. }
  9.  
  10.  
  11. $liczby = array();
  12.  
  13.  
  14. for ($i=1;$i<=16;$i++){
  15. if (!in_array($i, $tab)) { $liczby[] =  $i;}
  16. }
  17.  
  18. $losowy = array_rand ($liczby);
  19.  
  20. echo $losowy;
  21. ?>


Zmienna losowy przechowuje wylosowaną liczbę którą wstawiasz do bazy oczywiście liczba się nie potwarza

Ten post edytował kefirek 13.02.2009, 18:40:05
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 02:39