![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 5.12.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Mam w tabeli ~16 000 numerów PESEL i chciałbym sprawdzić ich poprawność. Znalazłem taki kod:
no ale jak podpiąć do tego tabelę i uzyskać wyniki?? Proszę o pomoc! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Bazy danych -> php
Jeśli dane masz w MySQLu:
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.05.2006 Skąd: Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
Z tego co znam się na programowaniu to funkcja is_numeric nie jest najlepszym rozwiązaniem na sprawdzanie czy zmienna (w tym przypadku $pesel) jest numeryczna, czyli składa się z samych cyfr. Dlaczego? Otóż funkcja is_numeric zwraca true w przypadku kiedy badana zmienna należy do zbioru A={0,1,2,3,4,5,6,7,8,9,.,-} Czyli jak widać przyjmuje również wartości zmiennoprzecinkowe czyli PESEL np: "8407.50443" przejdzie przez warunek - if (!is_numeric($pesel)) return false - jako true, a nie powinien.
Co do numeru PESEL do dużo ciekawych informacji na jego temat znalazłem na stronce http://pesel.php64.pl Ten post edytował lukio 1.12.2007, 14:29:50 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Lol gościu, jesteś archeologiem z zamiłowania czy co? 4 lata różnicy w postach - chyba ustanowiłeś nowy rekord!
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.05.2006 Skąd: Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
Wielu ludzi szuka informacji na temat numeru PESEL i jak trafi na tego posta to przynajmniej czegoś się nauczy. Bo przez 4 lata każdy nowoczesny język programowanie trochę ewaluował. Dzięki za docinkę.
Pozdrawiam |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 7.12.2004 Skąd: planeta -> ZIEMIA | kontynent -> EUROPA | kraj -> Polska | województwo -> ŁÓDZKIE | miasto -> TOMASZÓW MAZ Ostrzeżenie: (0%) ![]() ![]() |
To dla tych co szukają zostawię małą wskazówkę
Dorzucę też od razu weryfikację nr kont bankowego ;-)
Teraz wystarczy tą funkcję wstawić w pętle i wszystko |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.05.2006 Skąd: Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
"Kobe" funkcja is_numeric nie służy do sprawdzania czy dana zmienna składa się z samych cyfr.
Ktoś napisze jakiś skrypt, reszta tylko go kopiuje i myśli że skoro wszyscy tak robią to jest dobrze. A nie jest... is_numeric zwraca true gdy np zmienna będzie miała wartość: "-3453.34545" - a to chyba nie jest prawidłowy numer PESEL ![]() Pozdro 500 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
ehh
![]() http://phpedia.pl/wiki.php?title=WalidacjaNumerow A apropo algorytmu - tutaj is_numeric nie służy walidacji numeru Pesel, tylko optymalizacji algorytmu - w końcu jeśli jakiś ciąg nie spełnia tego warunku, na pewno pseselem nie będzie. A jeśli ten warunek spełni, a peselem poprawnym nie jest, zostanie to wykryte w kolejnym kroku.. -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.05.2006 Skąd: Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
Jakiej optymalizacji algorytmu?
Wykonanie operacji która nic nie daje to jest według Ciebie optymalizacja. Po co wykrywać coś w następnych krokach, jeżeli można to sprawdzić wcześniej i zakończyć działanie skryptu: return false; Co do strony z walidacjami to:
Zgadzam się z komentarzem, sprawdzamy czy ciąg ma 11 znaków, ale walidacja numeru PESEL polega na sprawdzeniu czy ciąg ma 11 cyfr Co do zastosowania tej funkcji to sprawdź sobie czy numer: 44444444444 jest poprawnym numerem PESEL. Okazuje się że funkcja "mówi" TAK - a przecież nie mamy miesiąca który ma 44 dni, no chyba że ja żyje w innym świecie. Pozdro 500 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.04.2025 - 01:53 |