Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Ograniczenie zakresu liczb
Maker5
post
Post #1





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 2.04.2008

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


Witam,
mam teraz tak

  1. function h_getExtraNumber($number,$addNumber = false)
  2. {
  3. $number = str_replace(',', '.', $number);
  4.  
  5. $number = floatval($number);
  6. $extra = 0;
  7. if($number <= 10)
  8. {
  9. $extra = 1;
  10. }
  11. else if($number <= 20)
  12. {
  13. $extra = 2;
  14. }
  15. else if($number <= 30)
  16. {
  17. $extra = 3;
  18. }
  19. else
  20. {
  21. $extra = 10;
  22. }
  23.  
  24.  
  25. if(!$addNumber)
  26. {
  27. return $extra.',00';
  28. }
  29. else
  30. {
  31. return number_format($extra + $number,2,',','');
  32. }
  33. }


moje pytania:
1. jaki kod dodać aby ograniczyć liczbę do 50, czyli nie jako zamknąć przedział na 50 a jeśli ktoś poda 51 to formularz go nie przepuści i wyskoczy zdefiniowany błąd.
2. czy w tym kodzie $extra = 10; oznacza że do każdej liczby powyżej 30 jest doliczane dodatkowo automatycznie 10 ?

Dziękuję
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat
1. jaki kod dodać aby ograniczyć liczbę do 50, czyli nie jako zamknąć przedział na 50 a jeśli ktoś poda 51 to formularz go nie przepuści i wyskoczy zdefiniowany błąd.

  1. if($numer > 50){
  2. throw new Exception('$numer > 50');
  3. }


Cytat
2. czy w tym kodzie $extra = 10; oznacza że do każdej liczby powyżej 30 jest doliczane dodatkowo automatycznie 10 ?

Nie. Jak widzisz jest jeszcze wcześniej warunek, po spełnieniu którego 10 nie zostanie doliczone.
  1. if(!$addNumber)
Go to the top of the page
+Quote Post
rocktech.pl
post
Post #3





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


Witam.

Nie wiem co chcesz osiągnąć ale rzuć okiem na ten kod ..
1.
  1. $Num = 51;
  2. var_dump(filter_var($Num, FILTER_VALIDATE_INT, array('options' => array('min_range' => 0, 'max_range' => 50))));
Go to the top of the page
+Quote Post
Maker5
post
Post #4





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 2.04.2008

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


Cytat(sowiq @ 23.01.2013, 11:51:03 ) *
Nie. Jak widzisz jest jeszcze wcześniej warunek, po spełnieniu którego 10 nie zostanie doliczone.
  1. if(!$addNumber)


nie rozumiem, możesz wyjaśnić bardziej jaki warunek ?

Cytat(sowiq @ 23.01.2013, 11:51:03 ) *
  1. if($numer > 50){
  2. throw new Exception('$numer > 50');
  3. }


a teraz żeby jeszcze pokazało błąd, że trzeba podać liczbę mniejszą niż 50.
Go to the top of the page
+Quote Post
sowiq
post
Post #5





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


  1. if(!$addNumber)
  2. {
  3. return $extra.',00'; // Tutaj jest spełniony warunek z nawiasu - nie ma dodawania
  4. }
  5. else
  6. {
  7. return number_format($extra + $number,2,',',''); // Tutaj warunek nie jest spełniony - jak widać w kodzie, jest dodawanie
  8. }


Cytat
a teraz żeby jeszcze pokazało błąd, że trzeba podać liczbę mniejszą niż 50.

  1. if($numer > 50){
  2. throw new Exception('Podaj liczbę mniejszą niż 50.');
  3. }

Co do komunikatu błędu to sorry, ale na głupie pytanie głupia odpowiedź. Przecież nikt nie wie w jaki sposób Twój system wyświetla użytkownikowi komunikaty błędów...
Go to the top of the page
+Quote Post
Maker5
post
Post #6





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 2.04.2008

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


Cytat(sowiq @ 23.01.2013, 14:39:03 ) *
  1. if(!$addNumber)
  2. {
  3. return $extra.',00'; // Tutaj jest spełniony warunek z nawiasu - nie ma dodawania
  4. }
  5. else
  6. {
  7. return number_format($extra + $number,2,',',''); // Tutaj warunek nie jest spełniony - jak widać w kodzie, jest dodawanie
  8. }



  1. if($numer > 50){
  2. throw new Exception('Podaj liczbę mniejszą niż 50.');
  3. }

Co do komunikatu błędu to sorry, ale na głupie pytanie głupia odpowiedź. Przecież nikt nie wie w jaki sposób Twój system wyświetla użytkownikowi komunikaty błędów...


nie działa, ktoś wpisuje wiecej niz 50 i przepuszcza dalej nie pokazujac zadnego komunikatu (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 2.10.2025 - 22:01