![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 17.05.2003 Skąd: Nysa Ostrzeżenie: (10%) ![]() ![]() |
Mam taką strukturę:
[sql:1:7e8ba38c0d] CREATE TABLE Users ( USER_ID BIGINT AUTO_INCREMENT UNIQUE PRIMARY KEY, PROFILE_ID INT NOT NULL, login VARCHAR(25) NOT NULL, pass CHAR(32) NOT NULL, email VARCHAR(100) NOT NULL, school VARCHAR(100), city VARCHAR(100), voivoidship VARCHAR(25), register_date DATE, register_time INT(10), WWW VARCHAR(100), hobby TEXT, GG INT(10), tlen VARCHAR(50), born_date DATE, sex CHAR(1) NOT NULL DEFAULT 'M', is_hidden tinyint(4) NOT NULL DEFAULT '0', is_active tinyint(4) NOT NULL DEFAULT '0', is_banned tinyint(4) NOT NULL DEFAULT '0', is_protected INT(1) NOT NULL DEFAULT '0', mkdate_of_last_readed_post INT(10) NOT NULL DEFAULT '0', posts_number INT NOT NULL DEFAULT '0', signature TEXT, avatar_file VARCHAR(35) ); [/sql:1:7e8ba38c0d] Chodzi o wartosc pola is_protected <- moge tam wprowadzic wartosc 1, ale nie mogę 0 i nie wiem dlaczego, siedzę już od 2 dni i nadal nie wiem w czym tkwi problem. A aby było zabawniej nie ma żadnych błędów, a przynajmniej nie wykazuje ich mysql_error(); |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
a) wartości liczbowych nie zamykaj w ' '
(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) $protect jest typu int? ___ OT ___ Lekko zmodfikowąłem Twoją tabelę (popatrz na pola typu "SET")[sql:1:3d29f63216]CREATE TABLE `Users` ( `USER_ID` int(11) NOT NULL auto_increment, `PROFILE_ID` int(11) NOT NULL default '0', `login` varchar(25) NOT NULL default '', `pass` varchar(32) NOT NULL default '', `email` varchar(100) NOT NULL default '', `school` varchar(100) default NULL, `city` varchar(100) default NULL, `voivoidship` varchar(25) default NULL, `register_date` date default NULL, `register_time` int(10) default NULL, `WWW` varchar(100) default NULL, `hobby` text, `GG` int(10) default NULL, `tlen` varchar(50) default NULL, `born_date` date default NULL, `sex` set('F','M','U') NOT NULL default 'U', `is_hidden` set('Y','N') NOT NULL default 'N', `is_active` set('Y','N') NOT NULL default 'N', `is_banned` set('Y','N') NOT NULL default 'N', `is_protected` set('Y','N') NOT NULL default 'N', `mkdate_of_last_readed_post` int(10) NOT NULL default '0', `posts_number` int(11) NOT NULL default '0', `signature` text, `avatar_file` varchar(35) default NULL, PRIMARY KEY (`USER_ID`), UNIQUE KEY `USER_ID` (`USER_ID`) ) TYPE=MyISAM AUTO_INCREMENT=1 ; [/sql:1:3d29f63216]NIe mam czasu przeyglądac się teraz całej. Ale SET ('Y', 'N') dość dobrze opisują to co się w nich znajduje. MySQL nie ma (AFAIR) pól typowo bitowych - a przydałyby się. Char zajmuje 1 bajt, TinyInt AFAIR 4 a pola bitowe (true/false) zajmowałby 1/8 bajta - niesamowita oszczędność i wygoda. GDzieś tu na forum przewijał się też temnat masek bitowych, czyli zapisania Twoich 4 pól is_* w jedno o wartości, np. 1111 - czyli wszystko na "on" - przeliczajac takizapis na dziesietny mamy liczbę "15" (jedno pole tinyint) a szesnastkowo to "F" - czyli nawet jedno pole "char(1)" do opisy max 8 zmiennych. Ehh.. sorki.. zrobiłem OT. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 07:18 |