我有 3 个表 - 产品、类别、产品类别。
表 product -> PID , product name
表格类别->CID,类别名称
表 product_category -> PID, CID
我的问题是处理 product_category 表。让我详细解释一下。
当我添加新产品时,我需要更新 2 个表 -> product 和 product_category。
product_category 用于存储产品 ID 和类别 ID,因为 1 个产品可以分配给多个类别。
添加新商品时,1个输入框加1个数组显示分类,供用户选择。例如。
foreach($display->category_name as $iid => $name) {
echo '
<div class="checkbox">
<label><input type="checkbox" name="check_list[]" value="'.$iid.'">'.$name.'</label>
</div>
';
}
所以当点击更新按钮时,它会显示用户之前输入的记录。
所以我的问题是如何检查用户是否选中了 1 个或多个选项或取消选中 1 个或多个选项或删除所有选项。然后相应地更新表 product_category。
引用截图
Case 1:(这个很简单,只需要再加1个选项)
Before->检查Western food和Mix food。
After->西餐,混餐+中餐
案例2:(去除西餐)
Before->检查Western food和Mix food。
After->仅检查混合食物。
案例3:(去掉西餐加中餐)
Before->检查Western food和Mix food。
After->检查混合食物和中国食物。
最佳答案
使用 array_diff()
获取未检查值的列表:
$old_check_list = ['1', '2'];
$new_check_list = ['2', '3'];
$unchecked_values = array_values(array_diff($old_check_list, $new_check_list));
关于php mysql 如何检查多个复选框添加/删除选项和更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39232987/