Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zmienna przyjmuje dziwną wartosc
Forum PHP.pl > Forum > Przedszkole
przemo191
Witam, mam taki problem.

Mam taki formularz w którym podaję nip itp, i chodzi o to że kiedy aktualizuję wpisy w bazie danych, to w polu nip pojawia mi się dziwna wartość, ale tylko kiedy zmienna ma więcej niż 10 znaków, jeżeli ma 10 lub mniej to jest ok. Reszta pól działa bez zarzutu, czego to może być problem? A najdziwniejsze jest to że kiedy wyświetlam wartość tuż przed zaktualizowaniem jej w bazie to jest odpowiednia, ale kiedy wyświetlę ją niżej po wyciągnięciu z bazy ma zupełnie inną wartość niż miała na początku.

Formularz.
  1. <div class="form-row">
  2. <span class="label">NIP *</span></td>
  3. <td><input class="tekst" type="text" name="nip" maxlength="15" value="<?php echo $nip1; ?>"></td>
  4. </div>

Wpis aktualizujący
  1. $query="UPDATE account SET imie='$name', nazwisko='$lastname', miejscwosc='$miejscowosc', wojewodztwo='$wojewodztwo', telefon='$telefon', kraj='$kraj', nazwa_firmy='$nazwa_firmy', wysylka_tytul='$wysylka_tytul', wysylka_imie='$wysylka_name', wysylka_nazwisko='$wysylka_lastname', wysylka_wojewodztwo='$wysylka_wojewodztwo', wysylka_ulica='$wysylka_street', wysylka_nr_domu='$wysylka_numer_domu', wysylka_nr_mieszkania='$wysylka_numer_mieszkania', wysylka_kod_poczt='$wysylka_kod_poczt', wysylka_miejscowosc='$wysylka_miejscowosc', ulica='$street', nr_domu='$numer_domu', nr_mieszkania='$numer_mieszkania', kod_poczt='$kod_poczt', nip='$nip' WHERE email='$email'";
konrados
No a jaki typ danych masz w bazie? Może np. varchar 10 ?
przemo191
W bazie to pole ma typ danych int 15
konrados
Kurde, co?questionmark.gif Twoim zdaniem int nadaje się do przetrzymywania stringów?

Zamień na varchar 15
Ulysess
to nic nie zmienia , masz pole int wiec nawet jesli masz UNSIGNED to max wartośc to 4,2mld , proponuje zmienić typ pola na BIGINT smile.gif
przemo191
Jest to pole do wpisywania nip, a kto ma nip z literami??


//edit
To pole jest ograniczone w formularzu do max 15 znaków + wcześniej jest skrypt sprawdzający poprawności wpisanych danych.

Zmieniłem na varch i działa, dzięki za pomoc.
konrados
Nigdy nie przyszło by mi do głowy przechowywać NIP jako int, bo pierwej musiałbym zrobić badanie jakie są maksymalne wartości tego NIPa. Najsensowniejszym rozwiązaniem wg. mnie jest więc varchar.

Ale jeśli sprawdziłeś jak to jest z nipami, to ok, możesz użyć UINT/BINGINT
przemo191
Maksymalna długość dla nip-a to chyba 11 o ile się nie mylę.

Problem rozwiązany zmieniłem typ pola na varch, i jest ok.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.