![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 126 Pomógł: 2 Dołączył: 27.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam, czy w php jest możliwość wrócenia do docelowego punktu w skrycie ?
Chodzi mi dokładniej w wyszukanie wolnej pozycji, po przez losowanie Czyli
Ten post edytował Deusx 27.08.2010, 18:07:04 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Korzystanie z tego raczej nie jest zalecane, ale proszę, jest:
http://php.net/manual/en/control-structures.goto.php |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 126 Pomógł: 2 Dołączył: 27.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Możesz napisać czemu nie jest zalecane?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Możesz napisać czemu nie jest zalecane? owszem http://www.google.pl/search?client=opera&a...-8&oe=utf-8 tutaj znacznie więcej -> http://www.google.pl/search?client=opera&a...-8&oe=utf-8 Edit: Usunąłem link do wulgarnego bloga Ten post edytował flashdev 27.08.2010, 18:14:01 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Poza tym do tego służą pętle - wykonujesz pętle tak długo, aż uzbierasz tych losów ile chcesz i wtedy "wyskakujesz" z pętli używają słowa kluczowego break. I odpytywanie bazy za każdym razem także mija się z celem, można to zrobić jednym zapytaniem, są odpowiednie metody.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 126 Pomógł: 2 Dołączył: 27.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Obecnie stosuję pętle, ale wykonuję się ponad 30 sek i jest błąd.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Obecnie stosuję pętle, ale wykonuję się ponad 30 sek i jest błąd. http://php.net/manual/en/function.set-time-limit.php |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Pokaż kod tej pętli, to zaraz przerobimy go tak, by wykonywał się szybciej.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 126 Pomógł: 2 Dołączył: 27.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wiem jak się limit zwiększa, jednak nie chcę go zwiększać, dlatego szukam alternatywy.
Pętla jest dość długa i skomplikowana - może dlatego się tak długo ładuje. Ogólnie chodzi o to, żeby znaleźć wolną pozycję x:x Pozycję te są nazwane w bazie system, planet system od 1 do 200 planet od 1 do 5 Jeżeli nie znajdzie, to daj komunikat, jeżeli znajdzie, to leć dalej. W obecnej pętli, są zawarte jeszcze dwie inne, które jeżeli pozycja jest zajęta, to +1 Źle to robię ? Ten post edytował Deusx 27.08.2010, 18:22:13 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ogólnie chodzi o to, żeby znaleźć wolną pozycję x:x - prosiliśmy o kod i najlepiej strukturę tabel oraz opis efektu jaki chcesz uzyskać. Pewnie wystarczy połączyć dwie tabele relacją i użyć odpowiedniego zapytania, w ostateczności można zrobić iloczyn kartezjański tabel, na pewno i tak będzie szybciej niż select dla każdej kombinacji rekordów.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 126 Pomógł: 2 Dołączył: 27.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
To jest cała pętla (IMG:style_emoticons/default/smile.gif) Ten post edytował Deusx 27.08.2010, 18:32:35 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Chyba wiem o co Ci chodzi, niestety tak tego nie zrobisz. Jak rozumiem, masz w bazie jakieś tam układy, planety, galaktyki i chcesz rozlosować z wolnej puli? Musisz stworzyć indeks, który przechowa wszystkie obecnie założone kombinacje na zasadzie:
123987456 - pierwsze 3 cyfry galaktyka, następne 3 planeta, następne 3 układ. Następnie generujesz taki indeks losowo i sprawdzasz w bazie, czy on istnieje - jeśli tak, to wykonujesz losowanie ponownie aż znajdziesz wolny. Oczywiście wszystko zależy od tego, ile jest wolnych kombinacji - jeśli mało, to bardziej opłaca się zrobić odwrotnie: pobrać wszystkie wolne kombinacje do tablicy i z nich wylosować jedną lub więcej. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 126 Pomógł: 2 Dołączył: 27.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, spróbuję coś dzisiaj wykombinować (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 22:45 |