ちょっと問題があります。私が望むのは、テーブルに外部キー値を挿入することだけです。これが私のmysqlのテーブル作成ステートメントです。
CREATE TABLE `sales` (
`sales_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`fkmember` INT(10) UNSIGNED NOT NULL,
`date_of_sales` DATETIME NOT NULL,
PRIMARY KEY (`sales_id`),
INDEX `fkmember` (`fkmember`),
CONSTRAINT `sales_ibfk_1` FOREIGN KEY (`fkmember`) REFERENCES `member` (`member_id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=3;
CREATE TABLE `sales_line` (
`line_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`fkproduct` INT(10) UNSIGNED NOT NULL,
`fksales` INT(10) UNSIGNED NOT NULL,
`quantity_purchased` INT(10) UNSIGNED NOT NULL,
`subtotal` FLOAT(7,2) UNSIGNED NOT NULL,
PRIMARY KEY (`line_id`),
INDEX `fkproduct` (`fkproduct`),
INDEX `fksales` (`fksales`),
CONSTRAINT `sales_line_ibfk_1` FOREIGN KEY (`fkproduct`) REFERENCES `product` (`product_id`),
CONSTRAINT `sales_line_ibfk_2` FOREIGN KEY (`fksales`) REFERENCES `sales` (`sales_id`)
)
私のテーブル構造:
販売表 sales_id | fkメンバー| 販売日 |
sales_line テーブル line_id | fk製品| fkセールス| 購入数量 | 小計 |
2つのテーブルに値を挿入する際の私のコード:
foreach($products as $p){
$data = array(
'sales_id' => null,
'fkmember' => $memberid
'name' => $p['product_name']
);
$this->db->insert('sales',$data);
}
foreach($products as $p){
$data = array(
'line_id' => null,
'fk_product' => $p['id'],
'fk_sales' => null,
'quantity_purchased' => $p['product_qty'],
'subtotal' => number_format($subtotal,2)
);
$this->db->insert('sales_line',$data);
}
}
fk_sales に値を挿入する際に、値の挿入にエラーがあることはわかっています。sales テーブルの ID から取得した値をこのフィールドに挿入するにはどうすればよいですか? この 2 つのテーブルを 1 回のラウンドで挿入したいからです。みんな助けてください。ありがとう