Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> standardowy insert
halfik
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 17.05.2003
Skąd: Nysa

Ostrzeżenie: (10%)
X----


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();
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
scanner
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 07:18