2013-08-03 3 views
1

Является ли это способом слияния переменной, называемой «bob» в таблице foo, с моей переменной bob2 в моей таблице foo2?PHP MYSQL «слияния» переменных

так что они соответствуют друг другу все время.

С момента обновления "bob". Я хочу, если это значение изменится, оно также относится к bob2 и наоборот.

Возможно ли это?

EDIT:

CREATE TABLE IF NOT EXISTS `stats` (
    `ID` int(11) NOT NULL auto_increment, 
    `player` varchar(12) default '', 
    `rank` varchar(12) default '', 
    `winpot` int(20) default '0', 
    `gamesplayed` int(11) default '0', 
    `tournamentsplayed` int(11) default '0', 
    `tournamentswon` int(11) default '0', 
    `handsplayed` int(11) default '0', 
    `handswon` int(11) default '0', 
    `bet` int(11) default '0', 
    `checked` int(11) default '0', 
    `called` varchar(11) default '0', 
    `allin` varchar(11) default '0', 
    `fold_pf` varchar(11) default '0', 
    `fold_f` varchar(11) default '0', 
    `fold_t` varchar(11) default '0', 
    `fold_r` int(11) default '0', 
    PRIMARY KEY (`ID`) 
    FOREIGN KEY (winpot) REFERENCES brukere(hand) 
); 

ошибка:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOREIGN KEY (winpot) REFERENCES brukere(hand))' at line 20 

им пытаются получить winpot ссылкой на руки в таблице brukere.

Что здесь не так?

edit2:

create table brukere(
    hand int(20) NOT NULL, 
    id int(20) NOT NULL auto_increment, 
    PRIMARY KEY (id) 
); 

CREATE TABLE IF NOT EXISTS `stats` (
    `ID` int(11) NOT NULL auto_increment, 
    `player` varchar(12) default '', 
    `rank` varchar(12) default '', 
    `winpot` int(20), 
    `gamesplayed` int(11) default 0, 
    `tournamentsplayed` int(11) default 0, 
    `tournamentswon` int(11) default 0, 
    `handsplayed` int(11) default 0, 
    `handswon` int(11) default 0, 
    `bet` int(11) default 0, 
    `checked` int(11) default 0, 
    `called` varchar(11) default '0', 
    `allin` varchar(11) default '0', 
    `fold_pf` varchar(11) default '0', 
    `fold_f` varchar(11) default '0', 
    `fold_t` varchar(11) default '0', 
    `fold_r` int(11) default 0, 
    PRIMARY KEY (`ID`), 
FOREIGN KEY (winpot) REFERENCES brukere(hand) 
); 

Schema Creation Failed: Can't create table 'db_2_7249b.stats' (errno: 150): 

(не может загрузить trought SQL (все еще смотрит на это) так разместил его здесь Надеюсь, вы не возражаете

, что здесь не так

+4

Вы, скорее всего, делаете это неправильно, посмотрите на внешние ключи, чтобы сделать такое отношение. –

+0

Что это значит? –

+0

Отсутствует запятая после первичного ключа. – Corbin

ответ

1

Такого рода..? отношения очень распространены в sql, но вы обычно создаете его таким образом, что вам не нужно обновлять вторую таблицу, т. е. вы используете идентификаторы в каждой таблице для представления своих значений, а при изменении значений переменных вы не Не нужно обновлять несколько таблиц.

Например:

Если у вас есть таблица Foo

CREATE TABLE foo (
    id integer NOT NULL AUTO_INCREMENT, 
    name CHAR(30) NOT NULL, 
    PRIMARY KEY (id) 
); 

и настольный бар

CREATE TABLE bar (
    id INTEGER NOT NULL AUTO_INCREMENT, 
    foo_id INTEGER NTO NULL, 
    name CHAR(30) NOT NULL, 
    PRIMARY KEY (id), 
    FOREIGN KEY (foo_id) REFERENCES foo(id) 
); 

Таким образом, при изменении имени боб в сортире на столе обув, вам не нужно ничего менять на панели таблиц, так как у вас есть ссылка на поле id, а не на имя.

Надеюсь, это поможет.

+0

Спасибо! это работает от foo1 до foo тоже? или мне нужно иметь этот код в таблице foo тоже? : P в любом случае, попробуем это! –

+0

CREATE TABLE IF NOT EXISTS 'stats' ( ' ID' INT (11) NOT NULL AUTO_INCREMENT, 'player' VARCHAR (12) по умолчанию '',' rank' VARCHAR (12) по умолчанию '', ' winpot' INT (20) по умолчанию '0', ' gamesplayed' INT (11) по умолчанию '0',' fold_r' INT (11) по умолчанию '0', FOREIGN KEY (winpot) ЛИТЕРАТУРЫ brukere (рука) PRIMARY KEY ('ID') ); Что не так? –

+0

У вас есть синтаксические ошибки, и вы должны сначала создать таблицу brukere. Смотрите это [скрипка] (http://sqlfiddle.com/#!2/edd0e) –