如何更新包含两个不同表的id映射的mysql映射表

时间:2017-04-05 09:33:06

标签: php mysql

我有两个表,一个是blog_posts另一个类别

id     | post_name
------ | ------
1      | title1  
2      | title2

id     | category_name
------ | ------
1      | category1  
2      | category2

并且对于帖子和类别的映射我正在使用另一个表,如

id     | post_id | category_id
------ | ------- | -----------
1      |    1    |     2
2      |    2    |     1
3      |    2    |     2

所以现在当我更新帖子并为帖子选择一些不同的类别ID时,我应该如何更新映射表?

我使用的是删除当前正在编辑的帖子的所有映射记录,然后将选定的类别ID和post id重新插入到映射表中,这种方法是最佳做法吗?请分享您的想法。 谢谢

1 个答案:

答案 0 :(得分:1)

例如:

$post_id = "2";

$db_categories = array('1', '2');

$select_categories = array('1', '3');

$delete_post_categories = array_diff($db_categories, $select_categories); //to delete result array('2')

$insert_posr_categories = array_diff($select_categories, $db_categories); //to insert result array('3')

print_r($delete_post_categories);
print_r($insert_posr_categories);