php - 循环遍历表单以更新 SQL 数据库

标签 php mysql sql

我正在构建一个页面,该页面写出不同数量的类别,然后在每个类别下写出与该类别关联的单位。每个类别部分都是一个单独的表单,其中包含重复的字段,并根据它们所属的行进行命名。布局是这样的:

Category 1

  • Unit 1 Update Fields
  • Unit 2 Update Fields
  • Unit 3 Update Fields

Submit Button for Category 1

etc.

每个字段的名称相同,并在末尾添加单位编号:

  • Features1, Features2, Features3, etc.

给定类别中的总行数保存在变量 $id# 中,其中 # 是类别的 ID(例如:$id1、$id2、$id3 等)。

我已经解决了大部分问题。但是,如果表单已更改,我想循环并执行 SQL 查询,这就是我遇到麻烦的地方。此时,我不知所措。这是我的代码的简化版本:

if (isset($_POST['submit'])) {
    $form = $_POST['form']; //save which category we're on in a variable.
    for ($i = 1; $i <= ${id.$form}; $i++) { //I think the problem is here
        $Feature = $_POST['Feature'.$i];
        $update = "UPDATE Units
               SET Feature ='$Feature'
               WHERE ID='$i'";

        if (($Feature!=${initialFeature.$i})) {
                    $updateQuery = mysqli_query($dbc, $update); 
        }
    }
}

我怎样才能做到这一点?有更好的方法吗?

最佳答案

我的方法是在字段名称中使用数组。

<input type="text" name="id[]" value="$foo">

然后在表单的操作页面上

$id = $_POST['id'];
for($i=0;$i<sizeof($id),$i++){
   ...//do something here using $id[$i] to select elements in the array
}

我认为这就是您正在尝试做的事情。

关于php - 循环遍历表单以更新 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20319159/

相关文章:

mysql - MYSQL 中的 UNNEST 函数类似于 POSTGRESQL

php - CodeIgniter 事件记录 : Load One Row at a Time

php - 无法向sql表中插入数据

sql - 如何使用 Coalesce 和 Max 提取不为空的最大值列

c# - 如何在 Ubuntu 上为 Asp.Net 5.0 安装 MySql 包?

MySQL 存储过程参数

mysql - SQL Zoonet 更多连接操作#10

javascript - 获取选中下拉列表的数据

php - 在 sql 查询中检查两个独立的事物

php - 可以用来代替 mysql_num_rows 的 mysql 查询