PHP 插入到 mysql 数据库中,其中“WHERE 字段”等于我的选择


PHP insert into mysql database with 'WHERE field ' equal to my selection

我需要插入新位置以使用我从下拉列表中选择的名称进行行。如何在名称和位置之间连接?

<?php
 $connect = mysqli_connect('localhost', 'root', '', 'test');
 $query = 'SELECT * FROM test';
 $res = mysqli_query($connect, $query);
echo "<select name='testform'>";
while($row=mysqli_fetch_assoc($res)){
 echo "<option value=>$row[name]</option>";
}
echo "</select>";

 ?>
<html>
<form action="indexx.php" method="POST">
<br>Locatio name:<input type= "text" method="POST"><BR>
<input type="submit" value="Insert" method="POST">
</form>
</html>

通过给表单命名并检查表单是否在 PHP 代码中设置来检查表单是否已提交。如果已设置,则表示用户提交了您的数据输入表单。使用用户输入的值执行 INSERT 语句。

旁注:输入标签没有属性"方法"。您可以删除它们。

您可能想了解 PHP 脚本的生命周期以及 PHP 中 $_POST 数组的用法。INSERT 语句的语法可以在许多语言规范或教程中找到。

我想你把事情搞混了一点,为你写了以下代码。请告诉我这是否解释了更多。

您需要的代码

<?php
if (isset($_POST['submit'])) {
    $connect = mysqli_connect('localhost', 'root', '', 'test');
    $query = "UPDATE test SET location_name='".$_POST['new_location']."' WHERE id='".$_POST['location']."' LIMIT 1";
    $res = mysqli_query($connect, $query);
    if (!$res) {
        die("Something went wrong");
    }
}
// This is the code to load the select options
$connect = mysqli_connect('localhost', 'root', '', 'test');
$query = 'SELECT * FROM test';
$res = mysqli_query($connect, $query);
$options = array();
while($row = mysqli_fetch_assoc($res)) {
    $options[] = $row;
}
?>
<form method="POST" action="<?= $_SERVER['PHP_SELF'] ?>">
    <select name="location">
        <option value="0">--- Select an option ---</option>
        <?php foreach ($options as $option): ?>
            <option value="<?= $option['id'] ?>"><?= $option['name'] ?></option>
        <?php endforeach; ?>
    </select><br />
    New name: <input type="text" name="new_location"><br />
    <input type="submit" name="submit" value="Update" />
</form>
<?php
if (isset($_POST['submit'])) {
    $connect = mysqli_connect('localhost', 'root', '', 'test');
    $query = "UPDATE test SET location_name='".$_POST['new_location']."' WHERE id='".$_POST['location']."' LIMIT 1";
    $res = mysqli_query($connect, $query);
    if (!$res) {
        die("Something went wrong");
    }
}
// This is the code to load the select options
$connect = mysqli_connect('localhost', 'root', '', 'test');
$query = 'SELECT * FROM test';
$res = mysqli_query($connect, $query);
$options = array();
while($row = mysqli_fetch_assoc($res)) {
    $options[] = $row;
}
?>
<form method="POST" action="<?= $_SERVER['PHP_SELF'] ?>">
    <select name="location">
        <option value="0">--- Select an option ---</option>
        <?php foreach ($options as $option): ?>
            <option value="<?= $option['id'] ?>"><?= $option['name'] ?></option>
        <?php endforeach; ?>
    </select><br />
    New name: <input type="text" name="new_location"><br />
    <input type="submit" name="submit" value="Update" />
</form>