在我的项目中,我有一个表,我使用while循环将数据提取到该表。这是代码。
A
如您所见,表格位于表格内,表格中的每一行都有一个复选框。
这是我的数据库表的屏幕截图。正如您所看到的那样,有一个称为可用性的字段,它们的值被“锁定”。 当我单击提交时,我想将这些锁定的字段更新为“返回”,其中勾选了复选框。 其他未勾选的内容不应更新。
所以,这就是我所做的。
01-01-17
我的问题是,此查询仅更新我勾选的最后一行,因为它在循环结束后获取值。它不会更新我选择的所有行。所以,如果你有任何想法如何实现这一点,请帮助我。
答案 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将返回一个用第一个参数粘贴的数组元素的字符串(在我们的例子中为',')。