php - 更新 mySQL 数据库时出现问题

标签 php mysql database arrays checkbox

好的,我已经成功地从我有字段的数据库中检索了行:

ref,fname,lname,event1,event2,event3. 
ref is the ID (autonumber).

因此,在我的索引 php 文件中,我从数据库检索数据并将其存储在具有适当 header 的表中,然后存储大约 100 个名称。对于事件 1、事件 2 和事件 3 行,我有复选框。现在,我已经尝试了几个小时来捕获选中的复选框并更新 event1 和/或 event2 和/或 event3 的数据库记录列。我认为我的错误是当我命名复选框时,我为每一行命名:

我将 event1 复选框命名为 event1[]
我将 event2 复选框命名为 event2[]
我将 event3 复选框命名为 event3[]

...这被重复了 100 次。当我提交表单时,我在 post_submit.php 文件中写入了以下内容:

$event1[] = $_POST['event1'];
$event2[] = $_POST['event2'];
$event3[] = $_POST['event3'];

这显然是错误的,因为它不起作用。

发生的情况是,当我选中一些复选框然后提交表单时,如果我选中 event1 的最后一个复选框,然后转到我的数据库,它始终是我的数据库中的前几条记录被更新仅更新第一条记录的 event1 字段。我在这里做错了,我猜这与我上面提供的信息有关。有人可以帮忙吗?另外,对于复选框值,我有“1”,因此我们的想法是,如果选中了 event1,2,3 字段,则将其更新为 1。

谢谢

最佳答案

如果我理解正确的话,你有一个大约 100 行的表:

id, first name, last name, event 1, event 2, event 3

和事件 1-3 只是表字段中的复选框。 如果您只有值为 1 或 0(选中或未选中)的 event1[],并且您发布此表单,则提交屏幕将只有一个由 0 和 1 组成的数组。它不会跟踪它来自哪一行。

建议:为您的 event1-3[] 提供 id 值。这样您的事件数组将包含需要更新事件的 ID。

因此,如果您的 id = 3,则选中复选框:

<input type='checkbox' name='event1[]' value='3'>

关于php - 更新 mySQL 数据库时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7760753/

相关文章:

javascript - 如何每隔几秒获取变量并更新它

php - 为什么 mysqli 插入不起作用?

php - 调用未定义的方法 DbConn::prepare()

php - 显示复选框数据 mysql

PHP MySQL 触发器 - 如何将变量传递给触发器?

mysql - 加载文件中的 str_to_date 导致 NULL 值

Mysql-添加不同格式的日期

php - WordPress MySQL 查询不工作

php - CakePHP 3 REST API + CORS 请求和 OPTIONS 方法

mysql - 从mysql的列中查找唯一的字符串