查询仅更新最后一个值

时间:2018-03-21 02:40:01

标签: php html mysql

在我的项目中,我有一个表,我使用while循环将数据提取到该表。这是代码。

A

如您所见,表格位于表格内,表格中的每一行都有一个复选框。

enter image description here

这是我的数据库表的屏幕截图。正如您所看到的那样,有一个称为可用性的字段,它们的值被“锁定”。 当我单击提交时,我想将这些锁定的字段更新为“返回”,其中勾选了复选框。 其他未勾选的内容不应更新。

所以,这就是我所做的。

01-01-17

我的问题是,此查询仅更新我勾选的最后一行,因为它在循环结束后获取值。它不会更新我选择的所有行。所以,如果你有任何想法如何实现这一点,请帮助我。

2 个答案:

答案 0 :(得分:0)

   if (isset($_POST['submit'])) {
    $update_query = "UPDATE req SET availability = 'returned' WHERE doc_id='{$_POST[return]}'";
    mysqli_query($conn, $update_query);
}

试试这个

了解更多信息,请访问 When to wrap curly braces around a variable

此外,复选框将发布数组而不是单个变量。

$_POST[return][0]

答案 1 :(得分:0)

首先,您需要确保发送已选中复选框的行的ID数组。

然后在您的代码中执行此操作:

if (isset($_POST['submit'])) {
    $update_query = "UPDATE req SET availability = 'returned' WHERE doc_id IN " . implode(',', $_POST[return]);
    mysqli_query($conn, $update_query);
}

implode将返回一个用第一个参数粘贴的数组元素的字符串(在我们的例子中为',')。