2013-03-16 4 views
-3

У меня возникают проблемы с вставкой значения, которое является внешним ключом в другую таблицу.Вставка значений в таблицу mysql

У меня есть две таблицы, одна из которых - пользователи, а другая - зарплата. Это моя зарплата таблица, которая имеет EmpId, который является внешним ключом в другую таблицу называемых пользователей

$query = "INSERT INTO paycheck(payCheckId, jobId, payRate, 
      jobLocation, hoursWorked, startPeriod, endPeriod, empId) 
      VALUES('', '$pay_rate', '$job_location', '$hours', 
      '$start', '$end', 'DONT KNOW WHAT TO PUT HERE ')"; 
$result = mysqli_query($db, $query); //we make the query 

Я не уверен, что значение, чтобы положить в EmpId, все значения приходят из текстового поля.

+1

Вы упускаете вверх весь смысл иметь 'mysqli' расширение. – hjpotter92

+0

Что представляет собой поле? Это может быть «нуль»? –

+0

где ваш empId? –

ответ

0

это способ создания внешнего ключа, представленного таблицы

CREATE TABLE `ffxi_characterJob` (
`serverID` int(11) NOT NULL, 
`userid` int(10)unsigned NOT NULL, 
`characterName` varchar(255) NOT NULL, 
`jobAbbr` char(4) NOT NULL, 
`jobLevel` int(11) default '0', 
PRIMARY KEY (`serverID`,`userid`,`characterName`,`jobAbbr`), 
INDEX (`jobAbbr`), 
CONSTRAINT FOREIGN KEY (`serverID`,`userid`,`characterName`) REFERENCES `ffxi_characters` (`serverID`,`userid`,`characterName`) ON DELETE CASCADE ON UPDATE CASCADE, 
CONSTRAINT FOREIGN KEY (`jobAbbr`) REFERENCES `ffxi_jobType` (`jobAbbr`) ON DELETE CASCADE ON UPDATE CASCADE 
) TYPE=InnoDB; 

, если вы создали, как это, то он автоматически удалять или обновлять при изменении значения в первой таблице (первичный), чтобы вставить вам нужно поместить значение, которое соответствует значению столбца первой таблицы


emp_id name value 
    1 aaa 24 
    2 bbb 23 
    3 ccc 25 
    4 ddd 27 

pur_id emp_id amount 
000  1 500 
001  2 100 
002  1  50 

в этом ев econd таблица emp_id является внешним ключом исхов с первой таблицей emp_id, так что вам нужно значение соответствия из первой таблицы

$query = "INSERT INTO paycheck(payCheckId,jobId,payRate,jobLocation,hoursWorked,startPeriod,endPeriod, empid) 
VALUES('','$pay_rate','$job_location','$hours','$start','$end', 'value that you want t0 match from first table')"; 
Смежные вопросы