php - 查询仅更新最后一个值

标签 php html mysql

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

            <form action="returnDoc.php" method="post">
            <div class="row">
                <div class="col-md-2">

                </div>
                <div class="col-md-8">
                    <div class="row">
                        <div class="col-md-12">
                            <h3>Return Document</h3>
                        </div>
                    </div><br><br>
                    <table class="table table-responsive-lg table-hover">
                        <tr>
                            <th>
                                No
                            </th>
                            <th>
                                Document ID
                            </th>
                            <th>
                                Put the tick for returns
                            </th>
                        </tr>
                        <?php while ($_r = mysqli_fetch_assoc($q_set)) { ?>
                            <tr>
                                <td>
                                    <?php echo $_r['number']; ?>
                                </td>
                                <td>
                                    <?php echo $_r['doc_id']; ?>
                                </td>
                                <td>
                                    <input type="checkbox" name="return" value="<?php echo $_r['doc_id']; ?>" />
                                </td>
                            </tr>
                        <?php } ?>
                    </table>
                </div>
                <div class="col-md-2">

                </div>
            </div>
            <div class="row">
                <div class="col-md-4">

                </div>
                <div class="col-md-4">

                </div>
                <div class="col-md-4">
                    <input type="submit" value="SEND TO DSO" name="submit" class="btn btn-light"/>
                </div>
            </div>
        </form>

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

enter image description here

这是我的数据库表的屏幕截图。如您所见,有一个名为 availability 的字段,它们的值是“锁定的”。 当我点击提交时,我想将这些锁定的字段更新为勾选复选框的“返回”。 其他没有勾选的不要更新。

所以,这就是我所做的。

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

我的问题是,此查询仅更新我勾选的最后一行,因为它在循环完成后获取值。它不会更新我选择的所有行。因此,如果您知道如何实现这一目标,请帮助我。

最佳答案

   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]

关于php - 查询仅更新最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49397243/

相关文章:

php - 使用 SimpleXMLElement 获取元素内部文本

c# - WebSocket 服务器未触发握手

html - 3 行,100% 高度布局,带 flexbox

python - 为什么 Django 使用 db_constraint=False 为 ForeignKey 创建索引

php - MySQL和php连接错误

php - Behat 无法初始化:Client::createResponse() 的声明应与 createResponse() 兼容

php - SimpleTest 的 SimpleBrowser 的替代品

html - 如何水平和垂直居中元素

php - MySQL 错误 : Call to undefined function mysql_connect() [file] on line 4

php - 多个元键和元值搜索