如何添加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
相关产品推荐
相关产品推荐

