php - 如果选中复选框,如何增加数据库中的 int 字段?
问题描述
因此,要总结我的问题,当用户输入表单时,我有一个小复选框,当检查时,它应该在数据库中的当前值中添加+1,但是我只是没有掌握要使用的逻辑
数据库
表 - 用户
字段
idUsers - PK(整数)
uidUsers(用户名)
电子邮件用户
密码用户
用户类型
shifts_done - 在表单提交期间每次选中复选框时需要递增的字段
HTML 复选框
<div class="form-group">
<input type="checkbox" id="shifts_done" name="shifts_done"/>
</div>
<!-- Submit form -->
<br>
<button class="btn btn-lg btn-primary btn-block" name="create-report" type="submit">Create</button>
PHP
if(isset($_POST['shifts_Done'])) {
$username=mysqli_real_escape_string($conn,$_POST['uid']);
$shifts_done=mysqli_real_escape_string($conn,$_POST['shifts_done']);
$increment = " UPDATE users SET shifts_done = '".$shifts_done."' WHERE uidUsers = '".$username."'";
}
编辑 - 表格的其余部分
<?php
require 'dbh.inc.php';
if(isset($_POST['shifts_done'])) {
$username = mysqli_real_escape_string($conn, $_POST['uid']);
$shifts_done = mysqli_real_escape_string($conn, $_POST['shifts_done']);
$increment = "UPDATE users SET shifts_done = shifts_done + 1 WHERE uidUsers = '" . $username . "'";
mysqli_query($conn, $increment);
}
if(isset($_POST['create-submit'])) {
//Declaração de variáveis
$username = $_POST['uid'];
$origin = $_POST['origin'];
$destination = $_POST['destination'];
$transport = $_POST['transport'];
$status = $_POST['status'];
$date=strtotime($_POST['date']);
$date=date("Y-m-d",$date);
$time=strtotime($_POST['time']);
$time=date('H:i:s',$time);
//inserts new shift
$sql = "INSERT INTO shifts (name, origin, destination, transport_number, status, date, time) VALUES (?,?,?,?,?,?,?)";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../shifts.php?error=sqlerror");
exit();
}
else {
mysqli_stmt_bind_param($stmt, "sssssss", $username,$origin, $destination, $transport, $status, $date, $time);
mysqli_stmt_execute($stmt);
header("Location: ../shifts.php?newrecord=success");
exit();
}
}
现在我真的不知道更新查询是否正确,因为用户名被用作变量来更新另一个字段,但我也不知道如何做我想要的增量部分。
在这两个方面的任何帮助将不胜感激,谢谢。
解决方案
解决方案是将您的查询重写为:
$increment = "UPDATE users SET shifts_done = shifts_done + 1 WHERE uidUsers = '".$username."'";
推荐阅读
- apache-kafka - 关于用 Kafka 实现 cqrs/saga 的问题
- modx - Modx Formit 简单联系方式
- java - 如果字符串对象是不可变的,那么为什么内容会发生变化?
- python - 运行循环后将垃圾值分配给列表元素
- typescript - 如何在电子中使用打字稿而无需编译?
- python-3.x - 如何使 OpenCV 捕获窗口显示在我的浏览器窗口上?
- javascript - JQuery ajaxSubmit 函数不适用于 AngularJS HTML 页面中的表单
- visual-studio-2019 - 有谁知道解决方案上下文菜单中“添加”子菜单组的 VSSDK id?
- reactjs - django rest + react js 如何直接访问react route的url?
- snowflake-cloud-data-platform - 加载到 VARIANT 列中的“非本机”数据类型的列化