php - 根据选中的复选框更新数据库

标签 php mysql sql database

我的数据库中有以下表格布局和一些数据。 Table Layout in database

我通过复选框获取输入,以便用户可以选择所有适用的事故道路状况并将其保存到数据库中。我想说,如果您要添加新记录,只需循环检查检查并将其插入数据库即可

First screen user checked some road conditions

第一个信息现已保存在数据库中,现在用户决定更改路况,无论出于何种原因用户回来并将其更改为以下内容。

User change the checkboexs values

现在我的问题是,我应该如何更新我的表格。我首先想到的是删除已有的记录并插入新的记录。

我真正的问题是,假设用户之前选择了 3 个项目,但更改了两个或一个,那么我将如何删除那些未检查的项目,您知道我在说什么。下面是我一直在尝试的一些代码片段。

$accidentRoadConditions = AccidentRoadConditions::findAccidentRoadConditions($acc_det_id);
$wc_array = [];

while ($roadConditions = $accidentRoadConditions ->fetch(PDO::FETCH_OBJ)) {
    $wc_array[] = $roadConditions ->rc_id;
}

上面我选择了数据库中已存储的所有路况。

if (isset($_POST['rta_ad_rc'])) {
    foreach ($_POST['rta_ad_rc'] as $rc_id) {
        //AccidentRoadConditions::save(array(null, $ad_lsid, $rc_id));
        // $tmprory = AccidentRoadConditions::findByADAndRCIds($acc_det_id, $rc_id);
        // if(!$tmprory){
        //  AccidentRoadConditions::save(array(null, $acc_det_id, $rc_id));
        // }
        if(in_array($rc_id, $wc_array)){
            $errors[] =  "in array <br />";
            unset($wc_array[0]);
        }
    }
}

所以我的问题是如何根据用户检查的内容更新数据库中的值,并删除之前检查过的未检查的值。有点复杂,所以简单介绍一下如何根据上述场景更新数据库。

有什么想法吗?

最佳答案

我认为你需要执行以下操作

  • 将选定的支票存储在数组中
  • 检查数据库中是否已保存其中任何内容
  • 如果是,则跳过它们,否则将它们添加到数组中

    $old_rc_array = []; $new_rc_array = [];

    while ($roadConditions = $accidentRoadConditions->fetch(PDO::FETCH_OBJ)) { $old_rc_array[] = $roadConditions->rc_id; }

    if (isset($_POST['rta_ad_rc'])) {

    foreach($_POST['rta_ad_rc']作为$rc_id){

    if(in_array($rc_id, $old_rc_array)){
        unset($old_rc_array[array_search($rc_id, $old_rc_array)]);
    }else{
        $new_rc_array[] = $rc_id;
    }
    

    } }

    foreach ($old_rc_array 作为 $rc_to_delete) { AccidentRoadConditions::deleteByADIdAndRCId($hidden_​​acc_det_id, $rc_to_delete); }

    foreach($new_rc_array 作为$rc_to_insert){ AccidentRoadConditions::save(array(null, $hidden_​​acc_det_id, $rc_to_insert)); }

关于php - 根据选中的复选框更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24652803/

相关文章:

php - 如何创建全局配置文件?

php - 优化 MySQL 报表查询

php - 使用 MySQL 和 Apache 配置 PHP

java - 使用联接将表 2 和表 3 中的数据添加到表 1 时出现 MySQL 查询问题

sql - 如何在 postgresql 查询中将行转换为列

php - 带有获取操作 URL 的 HTML 获取请求

php strip_tags 不删除 div (和其他)

C++ - Mysql 连接器

php - MYSQL 插入更新 - 重复键更新 - 出现错误

sql- 以下列格式显示记录表