Table user:
- user_id
- user_name
- (other info fields that doesn't matter for
Table item:
- item_id
- item_name
- (other info fields that doesn't matter for now)
所附图片中的所有字段均来自ITEM表,但最后一个显示“ Colaborador”的字段
更新: 抱歉, 关键是这样的: 我有2个表格,项目和用户 我想在Items表上注册电子设备(例如,如果我买手机,我想在该表上注册),然后将该项目(在这种情况下为手机)归因于用户,并进行注册归因于用户的项目,我需要将2个表与我已经拥有的外键匹配,但要点是,我不想输入user_id(即外键),但我想输入用户NAME 希望这次我能说清楚自己
PHP代码
if ($valid) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO ativos (item,comentario,data_aquisicao,localizacao,fabricante,modelo,anexo_a,numero_serie,imei,ativo_sap,evento,data_entrega,data_devolucao,data_estravio,id_user) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
$q = $pdo->prepare($sql);
$q->execute(array($item,$comentario,$data_aquisicao,$localizacao,$fabricante,$modelo,$anexo_a,$numero_serie,$imei,$ativo_sap,$evento,$data_entrega,$data_devolucao,$data_estravio,$id_user));
Database::disconnect();
header("Location: index.php");
}
答案 0 :(得分:0)
没有看到您的PHP代码如何生成关联的MySQL查询,我们可能无法告诉您如何重构特定情况以实现此功能。
在更通用的级别上,您可能必须将用户名从输入表单传递到子查询中,作为INSERT
语句的一部分:
INSERT INTO `item` (item_id, item_name, owner_id)
VALUES (1, 'abcdef', (SELECT user_id FROM user WHERE user_name = 'user1'))
编辑以添加PHP代码:
只需重构$ sql字符串查询以包括子查询即可:
$sql = "INSERT INTO ativos (item,comentario,data_aquisicao,localizacao,fabricante,modelo,anexo_a,numero_serie,imei,ativo_sap,evento,data_entrega,data_devolucao,data_estravio,id_user) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, (SELECT user_id FROM user WHERE user_name = ?))";
...应该返回与特定user_id
关联的user_name
并将ID值插入记录。