gpt4 book ai didi

php - 在 php 中编辑复选框数据并在 mysql 中更新行

转载 作者:行者123 更新时间:2023-11-29 00:25:58 25 4
gpt4 key购买 nike

我在 View 中有一组复选框,如下所示,作为较大表单的一部分。

<input type = "checkbox" value = "1" name = "checkbox_array[]" /> Checkbox 1
<input type = "checkbox" value = "2" name = "checkbox_array[]" /> Checkbox 2
<input type = "checkbox" value = "3" name = "checkbox_array[]" /> Checkbox 3
<input type = "checkbox" value = "3" name = "checkbox_array[]" /> Checkbox 3

假设我选中复选框 2 和复选框 4,然后单击提交。为了保存,我在 Controller 中循环遍历 checkbox_array[],如下所示。

$checkbox_array = $this -> input -> post('checkbox_array', TRUE)

<?php for($i=0;$i<count($checkbox_array);$i++){
$users = new User();
$users -> role_id = $checkbox_array[$i];
//Amongst other form data
$users -> save();
}?>

这会将数据库中的数据保存为:

id role_id 
1 2
2 4

使用相同的 View ,我打算编辑保存的数据。所以说现在我想选中复选框 1,取消选中复选框 2,选中复选框 3,保留复选框 4。这样我打算在数据库中包含以下内容。

id role_id 
1 1
2 3
3 4

我不知道如何进行更新。我一直在考虑从数据库中获取保存的数组,进行 inarray() 搜索,然后插入不在保存数组中的数据,在计算上我不知道这有多有效。

是否有我可以使用的 mysql 函数来实现此目的,比如 replace(),或者我还能如何实现编辑?

谢谢。

最佳答案

在这种情况下,我通常最终会做的是首先删除数据库中与该表单相关的所有数据(针对特定用户等),然后插入复选框的数据。删除符合条件的数据(特别是如果删除的 WHERE 在索引列上)比尝试选择并有选择地删除它们要便宜得多。更不用说它使代码更清晰,从长远来看,出于维护原因,这有它的好处。

更清楚一点,在索引上具有 WHERE 子句的 DELETE 比 SELECT 便宜得多,然后对不应该存在的那些进行 DELETE,然后再进行 INSERT。

关于php - 在 php 中编辑复选框数据并在 mysql 中更新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18910059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com