You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何添加Turned in编辑按钮并点击将数据库baatinn字段从0更新为1?

解决方案

我来帮你搞定这两个问题,分步骤一步步实现:


1. 在表格行中添加"Turned in"编辑按钮

首先得在表格的Edit列里加一个能触发更新的按钮,还要带上当前行的唯一标识(比如你的表有id主键,从排序逻辑能看出来),这样后端才知道要更新哪条数据。

把你PHP循环里的<td><?php echo $row["edit"]; ?></td>替换成下面的代码:

<td>
    <?php if ($row["baatin"] == 0): ?>
        <form method="POST" action="" style="margin: 0;">
            <input type="hidden" name="update_id" value="<?php echo $row['id']; ?>">
            <button type="submit" name="turn_in" style="padding: 4px 8px; cursor: pointer;">Turned in</button>
        </form>
    <?php else: ?>
        <span style="color: #666;">Already turned in</span>
    <?php endif; ?>
</td>

这里加了个小判断:如果baatin已经是1,就显示"已归还"的提示,避免重复操作。


2. 实现数据库更新的SQL与PHP逻辑

你需要在页面最顶部(数据库连接成功之后)添加处理更新请求的代码,一定要用预处理语句,避免SQL注入风险(你的原查询直接拼接变量有安全隐患,之后也建议改成预处理)。

添加这段代码:

// 处理Turned in按钮的提交请求
if (isset($_POST['turn_in']) && isset($_POST['update_id'])) {
    $update_id = $_POST['update_id'];
    // 预处理更新语句,防止注入
    $update_sql = "UPDATE utleie SET baatin = 1 WHERE id = ?";
    $stmt = $conn->prepare($update_sql);
    $stmt->bind_param("i", $update_id); // "i"表示参数是整数类型

    if ($stmt->execute()) {
        // 刷新页面,让表格立即显示更新后的状态
        header("Refresh: 0");
        exit();
    } else {
        echo "更新出错:" . $conn->error;
    }
    $stmt->close();
}

额外的安全优化建议

你的原查询直接拼接$sok变量存在SQL注入风险,建议也改成预处理语句:

// 替换原有的查询代码
$sql = "SELECT utleid, inntid, baatnr, fornavn, etternavn, tid, kr, baatin, id FROM utleie WHERE baatnr LIKE ? or fornavn LIKE ? or etternavn LIKE ? or tid LIKE ? ORDER BY id desc";
$stmt = $conn->prepare($sql);
$search_param = "%$sok%";
$stmt->bind_param("ssss", $search_param, $search_param, $search_param, $search_param);
$stmt->execute();
$result = $stmt->get_result();

内容的提问来源于stack exchange,提问作者Philip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:22:47