-3

外部キーである値を別のテーブルに挿入する際に問題があります。

私は2つのテーブルを持っています。1つはユーザーで、もう1つは給料です。これは、users という別のテーブルへの外部キーである 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 に入力する値がわかりません。すべての値はテキスト ボックスから取得されます。

4

1 に答える 1

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

この 2 番目のテーブルの emp_id は、最初のテーブル emp_id を持つ外部キー ref であるため、最初のテーブルの値と一致する必要があります

$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')";
于 2013-03-16T07:54:28.823 に答える