gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:28 24 4
gpt4 key购买 nike

我的数据库中有以下表格布局和一些数据。 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'] as $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 as $rc_to_delete) { AccidentRoadConditions::deleteByADIdAndRCId($hidden_​​acc_det_id, $rc_to_delete);

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

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

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