从插入的行获取ID,以便表可以更新为新值

时间:2019-02-15 23:32:20

标签: php sql phpmyadmin row

只需尝试一些其他的东西,然后遇到这个问题。 我在示例网站上回显了一些不同的表值,然后从下拉菜单中将数据从“ 1”更改为“ 2”。我只是使用post form操作来执行此操作,但是问题是,当我得到10条不同的输出行时,如何通过下拉菜单获取此确切行的ID? Atm使用此代码时,我只会将所有行值从1更改为2:< / p>

PHP

if (isset($_POST['insert2']))
{
    $status2 = $_POST['status2'];

    $sql2 = ("UPDATE test3 SET status='$status2' WHERE id=id");

    if (mysqli_query($conn, $sql2)) {
    header("Location: index.php");
    exit;
} else {
    echo "Error: " . $sql2 . "<br>" . mysqli_error($conn);
}}

具有回声的HTML

<?php while($row = mysqli_fetch_assoc($result)) { echo 
'<div class="box">
    <div class="box-id">
        <p class="box-id-text">Bonus id: ' . $row ['id'] . '</p>
    </div>
    <div class="box-date">
        <p class="box-date-text">Date laget: ' . $row ['date'] . '</p>
    </div>
    <div class="box-status">
        <div class="box-endre-status">
            <p class="box-status-text">Status: Pending,</p>
            <form action="" method="post">
                <select name="status2" class="endre-status">
                    <option value="" disabled selected>Endre status</option>
                    <option value="1">1</option>
                    <option value="2">2</option>
                </select>
                <input type="submit" name="insert2" value="Oppdater">
            </form>
        </div>
    </div>
</div>';}?>

这是非常新的知识,如果有人可以在正确的方向帮助我,将不胜感激。

1 个答案:

答案 0 :(得分:2)

您的问题是您没有传递<form action="" method="post">值来更新表单。您可以通过向表单添加隐藏的输入来解决此问题;在<input type="hidden" name="id" value="' . $row['id'] . '"> 之后向回显中添加类似的内容:

$id = $_POST['id'];

然后在您的PHP中添加

$status2 = $_POST['status2'];
UPDATE之后

并将您的$sql2 = ("UPDATE test3 SET status='$status2' WHERE id=$id"); 查询更改为

id

如果{{1}}是一个字符串,则需要将其用上一行的引号引起来。

您的下一个问题将是您容易受到SQL注入的攻击。为避免这种情况,您将需要使用准备好的语句。 This question很好地说明了如何执行此操作,您还可以查看PHP手册页,了解MySQLi准备的语句here

相关问题