关于多元关系的更新

时间:2017-02-03 10:04:12

标签: php mysql

我有三个表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一起操作,但我无法弄清楚

1 个答案:

答案 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') 

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