![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 31.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Próbuje nauczyć się na własną rękę pisać skrypty w php. Zapoznałem się z podstawami jednak nie zawsze wiem czy wykorzystuje zdobytą w najprostszy sposób. Dlatego chciałbym abyście rzucili okiem na mój skrypt losowania lotto i powiedzieli co mogłem zrobić lepiej i w jaki sposób.
Chyba trochę przesadziłem z komentarzami... Proszę o sugestie i pozdrawiam Maciek. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
1. Zamiast klepać tablice $zakres z palca użyj funkcji http://www.php.net/manual/en/function.range.php
-------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 31.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki, rzeczywiście wystarczyło: $zakres = range (1, 49). Tak to jest jak się nie zna do końca języka
i dodaje się samemu sobie pracy. ![]() Na przyszłość z pewnością zapamiętam. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 31.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje za rady. Zastosowałem wszystkie i kod stał się dużo bardziej przejrzysty, a do tego poznałem kilka przydatnych funkcji.
![]() Poprawiony kod:
Trapi mnie jeszcze jedne rzecz. Użytkownik może podać 6 takich samych liczb, przez co prawdopodobieństwo na trafienie "szóstki" byłoby bardzo duże ( 1 do 49 ). Do sprawdzania czy wszystkie liczby są różne mógłbym użyć funkcji in_array. Jednak musiałbym sprawdzać każdy element z osobna i porównywać go do całej tablicy. Czy nie ma jakiegoś bardziej wydajnego i odpowiedniego wyjścia w tej sytuacji? Jeszcze raz dziękuje za zainteresowanie i udzieloną pomoc. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Chyba nie ma... przynajmniej nie przypominam sobie... - na wszelki wypadek popatrz jeszcze do manual-a na funkcję tablicy: http://www.php.net/manual/pl/ref.array.php
Ale i tak już raz masz pętle na wszystkie elementy: Kod for ($i = 0; $i<= 5; $i++) { Wykorzystaj ją. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 31.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Głosiłem jednak herezję z in_array(). Funkcja ta sprawdza czy element znajduje się w tablicy.
Skoro element jest pobierany z tablicy $wpisane, to również w niej musi się znajdować. Zgodnie z radą kamil4u przejrzałem dokładnie listę funkcji w manualu i znalazłem dosyć ciekawą perełkę. array_unique(). Usuwa ona duplikaty z tablicy. Jako, że potem każdy z elementów tablicy jest sprawdzany czy mieści się w przedziale od 1 do 49 zostanie zwrócony fałsz, a działanie skryptu przerwane. Jako, że dodałem tylko jedno linijkę kodu i zmodyfikowałem echo(), nie wrzucam całego kodu, który jest dostępny wyżej ponieważ mija się to z celem.
Przy użyciu generowania tablic, z której ma być losowana cyfra przy użyciu funkcji range() dzieje się u mnie na serwerze dosyć dziwna rzecz. Pomimo, że zakres jest ustawiony od 1,49 to czasami w losowaniu potem z tej tablicy jest wyciągnięte 0. Ciekawe. ![]() Udało mi się z Waszą pomocą ulepszyć ten skrypt. Jednak nie myliłem się co do tego, że potrzebuje jakichś mentorów, którzy będą mi pokazywali błędy. Teraz spróbuje napisać coś większego, może jakiś system logowania. ![]() Tylko muszę się dokształcić z wyrażeń regularnych i obsługi sesji. Jeśli uda mi się stworzyć coś sensownego to wrzucę abyście wskazali mi błędy. Jeszcze raz dziękuje za pomoc i zainteresowanie. ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:08 |