Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]tabela
Forum PHP.pl > Forum > Przedszkole
dk1342
witam mam takie zapytanie:

  1. CREATE TABLE `phpbb_zakazy_pisania` (
  2. `id` int(100) NOT NULL AUTO_INCREMENT,
  3. `user_id` int(100) NOT NULL DEFAULT '0',
  4. `zp_time` varchar(100) NOT NULL DEFAULT '',
  5. PRIMARY KEY (`id`)
  6. ) TYPE=MyISAM AUTO_INCREMENT=13 ;


i ok i chce do tego dodać tabele powód ale dopiero zaczynam z mysql i nie wiem jaki wybrać typ (int lub varchar)

i próbuje tak:

  1. CREATE TABLE `phpbb_zakazy_pisania` (
  2. `id` int(100) NOT NULL AUTO_INCREMENT,
  3. `user_id` int(100) NOT NULL DEFAULT '0',
  4. `zp_time` varchar(100) NOT NULL DEFAULT '',
  5. `zp_powod` varchar(100) NOT NULL DEFAULT '',
  6. PRIMARY KEY (`id`)
  7. ) TYPE=MyISAM AUTO_INCREMENT=13 ;


i moje pytanie dobrze kombinuje ?
dziadzlasu
Tak na marginesie int(100) wartosc w nawiasie nie oznacza ilosci przechowywanych znakow a dopelnienie spacjami w razie nie uzyskania okreslonej ilosci znakow ktore nie moga przekroczyc 10... "wartosc ktora probujesz wstawic ma pomiescic 100 znakow" czyli wynik wyniesie 2147483647. Maxymalna wartosc wynosi 10 smile.gif
KCG
INT to wartości liczbowe, a VARCHAR tekstowe, dla zmiennej długości tekstu, czyli dobrze robisz. Btw. dodajesz pole, a nie tabele smile.gif
dziadzalasu chyba 11 smile.gif
dziadzlasu
My bad, nie 9 nie 11 a 10 znakow biggrin.gif
Do tych 10 doliczyles minusa biggrin.gif ?
KCG
Znaczy ja się nie mądruję, bo generalnie średnio rozumiem te długości, ale chociażby phpbb przechowuje w INT(11) datę w formacie unixowym (11 znaków) smile.gif
Mógłby ktoś wytłumaczyć tak na pewno, bo to niby długość, ale coś ostatnio czytałem i zwątpiłem w swoją wiedzę, a kolegi nie ma co na starcie w błąd wprowadzać.
PanGuzol
Z dokumentacji MySQL:http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
Cytat
The display width does not constrain the range of values that can be stored in the column, nor the number of digits that are displayed for values having a width exceeding that specified for the column. For example, a column specified as SMALLINT(3) has the usual SMALLINT range of -32768 to 32767, and values outside the range allowed by three characters are displayed using more than three characters.


Czyli jeśli liczba w tym polu będzie miała mniej cyfr niż liczba podana w nawiasie, to zostanie dopełniona spacjami (ewentualnie zerami ZEROFILL), jeśli będzie miała więcej cyfr to nic się nie stanie. Nic nie piszą o ograniczeniu do 10 czy 11 znaków.
KCG
W każdym razie może wydawać się (przynajmniej ja tak myślę biggrin.gif ), że np. SMALLINT(3) przechowuje 3 znaki, czyli liczby do 999, a tymczasem, jak wyżej zacytował PanGuzol to pole przyjmuje wartości od -32768 do 32767 smile.gif
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.