Witam.
Mam Pole 'ID' ktore ma się składać z numeru i liczb ze średnikiem np. 98 - A056B i problem jest w tym że zamiast liter zapisuje mi do bazy danych liczby. Czy wiecie jaki TYP użyć ? Używam AI oraz UNSIGNED ZEROFILL bo w numerach na początku występują kody rozpoczynjące się od zera np 00 - AF456
Na początku występuje liczba, ale potem już nie. Tak więc na pewno nie typ INT i nie AI, bo autoinkrement nie zbuduje Ci ciągu w takiej postaci.
Czyli typ CHAR lub VARCHAR w zależności czy długość ciągu jest stała. A dodatkowo indeks unikalny.
Możesz nam powiedzieć jaki typ jest teraz?
Autoincrement używa się do typów INT a nie stringów.
jeżelu chcesz sekwencję to ustaw sobie dwie kolumny gdzie jedna to ID z AI, a druga string podczas zapytania użyj CONCAT(`id`, '-', `drugaInformacja`)
CHAR i VARCHAR przyjmuje ale niestety nie zapisuje liter. Nadal przyjmuje tylko liczby.
AT oczywiście odhaczone.
A jaką długość pola ustawiłeś w przypadku CHAR/VARCHAR?
Robiłem na 12 i 250. Bez skutku. Wpisuje np do pola AAAA to zapisuje mi to jako 0.
Pokaż wynik z:
SHOW CREATE TABLE tu_nazwa_tabeli;
albo:
DESC tu_nazwa_tabeli;
Wartość wprowadzasz bezpośrednio do bazy czy poprzez jakiś skrypt/formularz?
Wyraźnie widać że jest gdzieś rzutowanie na int.
Wprowadzam przez skrypt ale przez baze czyli bezpośrednio wychodzi tak samo.
A byłbyś jednak uprzejmy pokazać wyniki tych dwóch zapytań z mojego posta wyżej?
Przepraszam. Jednak z bazy danych jest poprawnie problem leży na skrypcie. PRzez skrypt do bazy danych przechodzi przez 0 natomiast przez baze danych wpisuje się poprawnie. Wiec teraz jaki mam wkleić problem ?
Sprawdź po kolei przez jakie miejsca w kodzie przechodzi zmienna (do momentu INSERT), która przechowuje tą wartość.
Viking miałeś racje. Problem leżał na int a dokładnie w skrypcie. Poprawiłem już i wszystko działa. Dziękuje wszystkim za zaangażowanie i dla każdego polecą dziękówki. Pozdrawiam.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)