php - Codeigniter如何从数据库中删除帖子数据中不存在的值
问题描述
数据库表:
id | 用户 ID | 技能 ID
1 | 3 | 1
2 | 3 | 4
情况:用户单击按钮提交以将数据发布到数据库->(示例)数据为 user_id (3) 和 Skill_id(1)。
我想与数据库中的数据进行比较,如果数据库中不存在帖子数据,例如帖子数据是 user_id(3) 和 Skill_id(1),那么 id(2) 的数据将被删除。
这样做的目的是为了复选框功能,如果用户勾选复选框,新数据将被添加到数据库中。如果用户取消选中该复选框,则数据将被删除。
我目前的代码:
$query = $this->partner_vs_skill_model->where('partner_id',$id )->get_all();
$row = count($query);
foreach ($query as $row) {
foreach($skill as $value){
//$s = $row->skill_tag;
if($row['skill_id'] === $value){
break;
}
else{
}
}
}
解决方案
我想你在这里想太多了-
只需先删除您的项目,然后再插入,
以下应该有效(我假设你必须在你的阵列中至少拥有一项技能,但无论你是否想要,这完全取决于你..)
$userId = 3;
if (count($skill) > 0)
{
$this->db->where('user_id', $userId)->delete('your_table');
foreach($skill AS $skillId)
{
$arrInsertData = [
'user_id' => $userId,
'skill_id' => $skillId
];
$this->db->insert('your_table', $arrInsertData);
}
}
推荐阅读
- share - 在领英分享帖子
- python - 从数据库值 Django 中选择检查哪个单选按钮
- multithreading - “继续偷窃”和“偷孩子”有什么区别?
- javascript - 遍历 JSON 并呈现表格元素不会产生任何结果
- java - 二维数组:在二维数组中追加值
- html - 为什么不在 laravel 5.6 中显示验证错误消息
- java - 在 Java 11 中的打印机上打印文本、图像或报告时遇到问题
- node.js - Uncaught (in promise) TypeError: Cannot read property 'red' of null
- laravel - Laravel 5.8 验证 - 始终遵守任何规则
- xcode - 如何重新生成“不要问我”警告警报