![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 184 Pomógł: 14 Dołączył: 21.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem.
Używam funkcji rand:
i mam problem gdyż 1 miejsce może dostać 1 użytkownik. no ale istnieje dość duża szansa że wypadnie 2 razy to samo miejsce. 5*5 = 25 - tyle jest miejsc - gdy ich braknie będą losowane z następnego zbioru. co zrobić żeby liczby się nie powtarzały ale użytkownikowi musi przyznać unikalne liczby za pierwszym razem. Czy jest możliwe aby mieliło aż do wylosowania unikalnych liczb?? Jeżeli jest taka możliwość to zapewne trzeba będzie to pętlą zrobić tak (IMG:style_emoticons/default/questionmark.gif) no i jak to mniej więcej zrobić. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Zajęte miejsca musisz po prostu gdzieś zapisywać i gdy tabelka się zapełni do od zera (TRUNCUATE w SQL).
Robisz to faktycznie na zasadzie pętli z tym, że można to inaczej ponieważ będzie tu trochę niepotrzebnego zapętlania póki nie znajdzie wyniku. Możesz zrobić tabele 25 miejsc i flagę czy zajęte. Na poziomie bazy losujesz RAND() jedno i ustawiasz flagę na zajęte. Gdy wszystkie zajęte to UPDATE flag na 0 i tak w kółko. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 14:06 |