一种匹配SQL Query中所选输入字段的id的id的方法?

时间:2017-09-10 00:44:36

标签: php mysql

如果我选择带有自己照片的输入,我想在该输入中添加该特定照片的文字。我怎么做到这一点?我试图这样做:

$username = $_SESSION['username'];     
$db = mysqli_connect("localhost", "root", "", "pictures");
        $sql = "SELECT * FROM images WHERE username = '$username'";
        $result = mysqli_query($db, $sql);
        $row = mysqli_fetch_array($result);
        $id = $row['id'];
        $send = $_POST['send'];

if (isset($_POST['submit'])) {
        $db = mysqli_connect("localhost", "root", "", "pictures");
        $sql = "UPDATE images SET send='$send' WHERE username='$username' AND id='$id'";
        mysqli_query($db, $sql);
        header("Location: index");
    } else {
    }

HTML:

<form enctype="multipart/form-data" action="send_message" method="post">
<input name="send" placeholder="Send message" />
<button name="submit"></button>
</form>

我遇到的问题是当我添加文本时,它不会转到我选择的图片,而是转到与查询匹配的第一张图片。

1 个答案:

答案 0 :(得分:0)

您需要发送要更改send值的图片的ID。 您可以将它转换为int并使用预准备语句,并选择具有该id的数据库行以及用户(不要仅通过id选择,因此无法更改用户发送表单的图片的值不是所有者的)

因此您的表单应该类似于:

<form method="post">
    <input type="hidden" name="id" value="<?PHP echo $row['id']; ?>"/>
    <input type="text" name="send" placeholder="Send message"/>
    <button name="submit"></button>
</form>

因此,您需要创建ID为phone的隐藏字段,以设置新的send值。我假设您从数据库中有一行,该ID将作为隐藏ID字段的值插入。但是,如果您创建链接/按钮以将用户重定向到可以编辑照片的页面,则可以使用$_GET['id']$_POST['id']

您还可以通过点击照片使用javascript设置隐藏ID字段的值。