![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 0 Dołączył: 29.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Problem dotyczy zapisu pesel'a do bazy.
w tabeli mam: Cytat CREATE TABLE `tabela` ( `id` int( 11 ) unsigned NOT NULL AUTO_INCREMENT , tu inne pola `pesel` int( 11 ) NOT NULL default '', tu inne pola PRIMARY KEY ( `id` ) ); Są różnice w formularzu i po zapisie do bazy: w formularzu podaję: 81010109876 a w bazie zapisuje mi pod numerem: 2147483647 - nie wiem co się dzieje. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Pole w bazie jest za dlugie jak na liczbe calkowita 32 bitowa ze znakiem, te 2 mld to 2^31 - 1, maksymalna wartosc dodatnia int'a.
Przechowuj pesel jako stringa (char). -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 0 Dołączył: 29.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję dr_bonzo - działa heh
![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
mozna tez uzyc typu BIGINT, jesli przeprowadzasz operacje wyszukiwania, porownania itp. po tej kolumnie to zawsze szybse sa typy liczbowe niz tekstowe
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Cytat w formularzu podaję: 81010109876 a w bazie zapisuje mi pod numerem: 2147483647 - nie wiem co się dzieje. Ups, zrozumialem to na odwrot w bazie masz 81010109876, a php wyswietla ci tylko 2mld. Zrob tak jak mowi Kinool - BIGINT, dane z formularza wczytuj jako stringi i wrzucaj do SQLa:
A przy wyciaganiu pesela: sproboj go wyciagnac jako string (tylko nie wiem jak to zrobic), bo w int'cie sie nie zmiesci. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 159 Pomógł: 1 Dołączył: 31.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
...a nie wystarczy jako typ:
int(11) not null unsigned ? -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
Cytat(lenzcewski @ 2005-11-15 12:50:31) ...a nie wystarczy jako typ: int(11) not null unsigned ? unsigned czyli bez znaku zwieksza ci zakres x2 jak pisal dr_bonzo int ma zakres (ze znakiem) 2^31 - 1 czyli 2147483647 wiec w unsigned bedzie mialo 4294967295 jak widzisz jest to za malo do zapisania peselu -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Cytat A przy wyciaganiu pesela: sproboj go wyciagnac jako string (tylko nie wiem jak to zrobic), bo w int'cie sie nie zmiesci. Z bazy dane i tak sa zwracane jako string wiec wszystko jest ok. -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Fajnie wiedziec
![]() -------------------- Nie lubię jednorożców.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 08:14 |