Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Warunek arytmetyczny na stringu
yta
post 26.03.2012, 16:04:39
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

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


Witam pobieram przez formularz string 11 znaków.
np
10111266666
Dzielę go poprzez: substr i sprawdzam warunki. Problem jednak zaczyna się gdy chcę sprawdzić czy wycięty fragment jest większy od jakieś liczby. Bo logiczne że nie dam 99x elseif aby sprawdzić każdą możliwość błędnego wpisania dnia i miesiąca.
Konwersja stringa na INT także nic nie daje albo źle to robię ...

Cały if:
if((substr($pesel, 2, 2) == "00") || (intval($pesel) < 13))

Chodzi o to co będzie po LUB
Tak coś nie chce pykać z tym INTVAL i dziwnie się wywala bo jakoś ucina stringa zamiast wyświetlić napis i zakończyć działanie (po napisanie mam dane exit)
można zobaczyć jak to wygląda:



przykładowy string który już źle pyka:
94134567890

Na razie dnia nie sprawdzam. Danie warunku typu <= 13, 12 nie pomaga.
Go to the top of the page
+Quote Post
jaslanin
post 26.03.2012, 16:24:35
Post #2





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


Jeżeli chcesz sprawdzić czy wycięty string jest większy od jakiejś liczby to chyba powinieneś go najpierw wyciąć

  1.  
  2. $month = substr($pesel, 2, 2);
  3.  
  4. if(($month == "00") || (intval($month) < 13))
  5.  


Dodatkowo post napisany jest niezrozumiale. Nie prościej było zapytać jak sprawdzić w numerze PESEL wartość miesiąca nie przekracza 13 albo jak wydobyć miesiąc jako liczbę z numeru PESEL?

Ten post edytował jaslanin 26.03.2012, 16:30:46


--------------------
Good luck and happy PHP'ing
Go to the top of the page
+Quote Post
yta
post 26.03.2012, 16:29:55
Post #3





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

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


Cytat(jaslanin @ 26.03.2012, 17:24:35 ) *
Jeżeli chcesz sprawdzić czy wycięty string jest większy od jakiejś liczby to chyba powinieneś go najpierw wyciąć



  1.  
  2. $month = substr($pesel, 2, 2);
  3.  
  4. if(($month == "00") || (intval($month) < 13))
  5.  


Dodatkowo post napisany jest niezrozumiale. Nie prościej było zapytać jak sprawdzić w numerze PESEL wartość miesiąca nie przekracza 13 albo jak wydobyć miesiąc jako liczbę z numeru PESEL?


Przecież wyciąłem
nie muszę dawać zmiennej pomocniczej = substr mam ifa wink.gif
i zamiast tego month mam u siebie po prostu PESEL i nie działa z tym INTVALEM ...
Go to the top of the page
+Quote Post
batman
post 26.03.2012, 16:32:48
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Abstrahując od samego problemu, datę sprawdzaj przy pomocy funkcji checkdate. W ten sposób unikniesz problemu z lutym i sprawdzaniem czy miesiąc ma 30, czy 31 dni.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
yta
post 26.03.2012, 16:43:32
Post #5





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

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


Cytat(batman @ 26.03.2012, 17:32:48 ) *
Abstrahując od samego problemu, datę sprawdzaj przy pomocy funkcji checkdate. W ten sposób unikniesz problemu z lutym i sprawdzaniem czy miesiąc ma 30, czy 31 dni.

Na przyszłość się przyda. Tutaj wystarczy z góry założyć że miesiąc ma 31 dni max bo to tak szkolne zadanie wink.gif

Doszedłem:
|| intval(substr($pesel, 2, 2)) >12)

tak ma być i działa wink.gif
Można sprawdzić.

Ten post edytował sakuwbarakushow 26.03.2012, 16:58:30
Go to the top of the page
+Quote Post
jaslanin
post 26.03.2012, 17:01:17
Post #6





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


wiem że tak ma być, dokładnie tak samo wcześniej Ci napisałem tylko że zamiast dwa razy wykonywać substr (która zwraca to samo za każdym razem), użyłem zmiennej pomocniczej.

Ten post edytował jaslanin 26.03.2012, 17:04:53


--------------------
Good luck and happy PHP'ing
Go to the top of the page
+Quote Post
yta
post 26.03.2012, 17:07:43
Post #7





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

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


Mniejsza o to ważne że działa wink.gif
Dzięki
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 Wersja Lo-Fi Aktualny czas: 13.07.2025 - 01:13