php - 如何将多个预先确定的 MySQL 字段关联并插入到单选下拉选项

标签 php mysql forms

我正在创建一个表单更新过程,其中使用 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。如果您不想这样做,则需要使用 GenderEvent 值执行 SELECT 语句来获取 record_id 但是,如果您要更新 record_id,那么您将无法使用这些值。所以,我回到我最初的陈述。您需要在 POST 请求中发送 record_id 以用作引用。您不能仅选择GenderEvent 来更新现有记录,但没有该记录的引用,更新。

关于php - 如何将多个预先确定的 MySQL 字段关联并插入到单选下拉选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57190337/

相关文章:

每天 100 万次点击的 MySQL 解决方案

mysql - 我们可以使用 pandas 执行删除操作而不读取文件吗

php - MySQL 使用 "in"条件检索重复结果

javascript - PHP多种表单重新提交避免

javascript - 如何比较两个值并返回正确答案javascript,以及如何只调用一次函数javascript

php - 如何使用户配置文件成为 domain.com/username 而不是 domain.com/profile.php?user=username?

php - 将确切的单词与任何字符正则表达式匹配

php - 如何获取具有相同名称的多个文本输入的值

php - Codeigniter 搜索不起作用

php - 即使页面卸载或重定向到另一个页面后,如何继续 AJAX/JQuery?