我有三个表users_tbl,skill_tbl,user_skill_tbl 其中
users_tbl have 1 to many relations with user_skill_tbl(auto increment)
and skill_tbl have 1 to many relations with the user_skill_tbl.
user_skill_tbl have user_skill_id, skill_id and user_id.
我在表格中插入数据时没有问题。
我有一个用户详细信息和多项技能检查选项的表单(我只得到skill_id)。
当填充from时,首先插入用户表,然后获取最后插入的id并插入user_skill_tbl。 但我的问题是当我必须更新我使用的user_skill_tbl时
$skill = $_POST['skill_id'];
for($i=0;$i < count($skill); i++){
$name[$i]= mysqli_escpae_string($con,$skill[$i]);
$query = "update into user_skill_tbl (skill_id)
values ('$skill_id') where user_id = '$user_id'"
执行查询后,在user_skill_tbl中的所有skill_id上更新skill_id的最后一个id。我知道我应该与user_skill_id一起操作,但我无法弄清楚
答案 0 :(得分:0)
我猜你是在混合更新并插入语法和“update into”。它是“更新表名”或“插入表名”。
我不确定如何将您的数据存储在user_skill_tbl
中,但如果我认为每个用户只存储与其技能相关的记录,则需要先删除所有技能。当前用户,如:
$query = "delete from user_skill_tbl where user_id = '$user_id'"
然后在for循环中添加每项技能:
$query = "insert into user_skill_tbl (skill_id, user_id) values
('$skill_id', '$user_id')
将所有内容放入事务中,以避免在执行过程中出现问题时出现不一致。