Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z pesel'em, inny zapis niż w formularzu
mitp
post 12.11.2005, 23:03:33
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.
Go to the top of the page
+Quote Post
dr_bonzo
post 13.11.2005, 00:00:20
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.
Go to the top of the page
+Quote Post
mitp
post 13.11.2005, 00:10:40
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 smile.gif
Go to the top of the page
+Quote Post
Kinool
post 13.11.2005, 11:13:53
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


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post 13.11.2005, 11:29:32
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:
  1. <?php
  2. $sql = "INSERT ... (pesel,...) VALUES (" . $pesel; // mimo ze $pesel jest stringiem nie dodawaj w okol niego apostrofow, w celu potra
    ktowania go przez baze jako liczbe (pamietaj o sprawdzeniu czy $pesel posiada tylko cyfry!!!)
  3. ?>


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.
Go to the top of the page
+Quote Post
lenczewski
post 15.11.2005, 11:50:31
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

?


--------------------
Go to the top of the page
+Quote Post
Kinool
post 15.11.2005, 12:21:37
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


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 15.11.2005, 16:15:25
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.


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post 15.11.2005, 16:34:12
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 biggrin.gif Nigdy nie psrawdzalem


--------------------
Nie lubię jednorożców.
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.06.2025 - 08:14