Php 多表关系的更新

Php 多表关系的更新,php,mysql,Php,Mysql,我有三张表,分别是users\u tbl、skill\u tbl、user\u skill\u 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. 我

我有三张表,分别是users\u tbl、skill\u tbl、user\u skill\u 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. 
我在表中插入数据时没有问题

我有一个表单,其中有用户详细信息和技能的多重检查选项(我只获得技能id)

填写from时,首先插入用户表,然后获取最后一个插入的id并插入用户技能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'"
$skill=$\u POST['skill\u id'];
对于($i=0;$i

执行查询后,技能id的最后一个id将在用户技能tbl中的所有技能id上更新。我知道我应该与用户技能id一起操作,但我无法理解它。

我猜您将更新和插入语法与“更新到”混为一谈。它是“更新表名”或“插入到表名”

我不确定您如何将数据存储在
user\u 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') 

将所有内容都放在事务中,以避免在执行过程中出现问题时出现不一致。

谢谢。我感到困惑,但问题解决了