【发布时间】:2019-01-31 13:56:53
【问题描述】:
我已经编写了添加和更新用户的代码,并且我想添加和更新他们可以工作的类别。添加的用户将进入 users 表,他们可以访问的类别进入 category_permitted 表。我有以下用于添加和更新表的代码:
if ($user_info) {
if ($act == "add") {
if ($user_info) {
$array = array(
'user_id' => $user_info,
'category_id' => $temp['cat_access']
);
$category_permitted->addCategoryAccess($array);
}
} else {
if ($user_info) {
$array = array(
'user_id' => $id,
'category_id' => $temp['cat_access']
);
$deleteold = $category_permitted->deleteCategoryAccess($id);
$category_permitted->addCategoryAccess($array);
}
}
}
这是我添加和更新类别访问权限的功能:
public function addCategoryAccess($data, $is_die = false){
return $this->insert($data, $is_die);
}
public function updateCategoryAccess($data, $id, $is_die = false){
$args = array(
'where' => array('user_id' => $id),
);
return $this->update($data, $args, $is_die);
}
我的更新功能是在更新用户的类别访问权限时使用正在添加的数字更新 category_id 列的所有数据。
我想保留 2 和 3 原样并添加另一个类别 id,它是 1,但在运行更新代码后,它会像这样更新数据。 我是否必须向WHERE CLAUSE 添加另一个条件才能获得预期的输出?
【问题讨论】:
-
你应该删除这个更新功能并添加一个删除一个,这样当用户可以访问一个新类别时,你在表中添加他的id和类别id,当他不能再访问你的类别时删除他(其中 user_id 和 category_id)。要更新只需删除然后添加
标签: php sql-update