我正在创建一个表单更新过程,其中使用 PHP 将多个值插入 MySQL 数据库。我已将其设置为能够手动输入特定 RecordID 并选择性别和事件名称。
这些 RecordID 应该锁定到特定的性别和事件名称,但现在您必须手动正确输入信息。
我想消除 RecordID 作为选择选项,只选择 Gender 和 EventName,它会将以下表单输入信息输入到与该 Gender 和 EventName 关联的特定 RecordID 中。
我已经能够设置手动流程。然而,我完全不知道如何建立强制关联。我还研究了 MySQL 的多个条目,但我已经了解如何做到这一点。
我的 HTML:
<form action="swimming-world-records-update.php" method="post">
<div class="form-group">
<label for="ID">ID:</label><br>
<input type="text" name="id" placeholder="Enter ID">
</div>
<br>
<div class="form-group">
<label for="gender">Gender:</label><br>
<select name="gender">
<option value="Men">Men</option>
<option value="Women">Women</option>
<option value="Mixed">Mixed</option>
</select>
</div>
<br>
<div class="form-group">
<label for="event">Event:</label><br>
<select name="event">
<option value="50m freestyle">50m freestyle</option>
<option value="100m freestyle">100m freestyle</option>
<option value="200m freestyle">200m freestyle</option>
<option value="400m freestyle">400m freestyle</option>
<option value="800m freestyle">800m freestyle</option>
<option value="1500m freestyle">1500m freestyle</option>
<option value="50m backstroke">50m backstroke</option>
<option value="100m backstroke">100m backstroke</option>
<option value="200m backstroke">200m backstroke</option>
<option value="50m breaststroke">50m breaststroke</option>
<option value="100m breaststroke">100m breaststroke</option>
<option value="200m breaststroke">200m breaststroke</option>
<option value="50m butterfly">50m butterfly</option>
<option value="100m butterfly">100m butterfly</option>
<option value="200m butterfly">200m butterfly</option>
<option value="200m IM">200m IM</option>
<option value="400m IM">400m IM</option>
<option value="400m freestyle relay">400m freestyle relay</option>
<option value="800m freestyle relay">800m freestyle relay</option>
<option value="400m medley relay">400m medley relay</option>
</select>
</div>
我的功能:
function updateRecords() {
if(isset($_POST['submit'])) {
global $connection;
$gender = $_POST['gender'];
$eventname = $_POST['event'];
$time = $_POST['time'];
$nation = $_POST['nation'];
$sname = $_POST['sname'];
$sdate = $_POST['sdate'];
$smeet = $_POST['smeet'];
$smeetlocation = $_POST['smeetlocation'];
$nation = $_POST['nation'];
$recordvideo = $_POST['recordvideo'];
$id = $_POST['id'];
$gender = mysqli_real_escape_string($connection, $gender);
$eventname = mysqli_real_escape_string($connection, $eventname);
$time = mysqli_real_escape_string($connection, $time);
$nation = mysqli_real_escape_string($connection, $nation);
$sname = mysqli_real_escape_string($connection, $sname);
$sdate = mysqli_real_escape_string($connection, $sdate);
$smeet = mysqli_real_escape_string($connection, $smeet);
$smeetlocation = mysqli_real_escape_string($connection, $smeetlocation);
$nation = mysqli_real_escape_string($connection, $nation);
$recordvideo = mysqli_real_escape_string($connection, $recordvideo);
$id = mysqli_real_escape_string($connection, $id);
$query = "UPDATE `records` SET ";
$query .= "Gender = '$gender', ";
$query .= "EventName = '$eventname', ";
$query .= "Time = '$time', ";
$query .= "NationName = '$nation', ";
$query .= "SwimmerName = '$sname', ";
$query .= "Date = '$sdate', ";
$query .= "MeetName = '$smeet', ";
$query .= "MeetLocation = '$smeetlocation', ";
$query .= "VideoURL = '$recordvideo' ";
$query .= "WHERE RecordID = $id ";
$result = mysqli_query($connection, $query);
if(!$result) {
die("Query failed." . mysqli_error($connection));
} else {
echo "Record updated!";
}
}
}
我希望能够在下拉列表中选择性别事件,并且它只会更新到锁定的关联 RecordID。
最佳答案
我还没有足够的声誉点来发表评论。在 POST
期间需要有某种方法来引用您的 record_id
。如果您不想这样做,则需要使用 Gender
和 Event
值执行 SELECT
语句来获取 record_id
但是,如果您要更新 record_id
,那么您将无法使用这些值。所以,我回到我最初的陈述。您需要在 POST
请求中发送 record_id
以用作引用。您不能仅选择Gender
和Event
来更新现有记录
,但没有该记录
的引用,更新。
关于php - 如何将多个预先确定的 MySQL 字段关联并插入到单选下拉选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57190337/