我怎样才能得到“的”呢;ID";从mysql记录中获取数字,并使用它使用php更新该记录?

我怎样才能得到“的”呢;ID";从mysql记录中获取数字,并使用它使用php更新该记录?,php,mysql,Php,Mysql,这是我的考试表格(表格链接已删除)。如果你点击更新票证链接,它会将你带到一个页面,向记录中添加其他信息。我看到该记录的id在浏览器url中传递给表单,url的末尾写着?id=10或该记录的id号是什么。这就是我被卡住的地方,我无法获取要更新的记录,我在表单中输入信息,然后单击更新按钮,它告诉我它添加了1条记录,但它没有将信息添加到MySQL,我也没有收到任何错误。下面是我用来更新记录的代码: <?php include 'db_connect.php'; $city=$_POST['c

这是我的考试表格(表格链接已删除)。如果你点击更新票证链接,它会将你带到一个页面,向记录中添加其他信息。我看到该记录的id在浏览器url中传递给表单,url的末尾写着?id=10或该记录的id号是什么。这就是我被卡住的地方,我无法获取要更新的记录,我在表单中输入信息,然后单击更新按钮,它告诉我它添加了1条记录,但它没有将信息添加到MySQL,我也没有收到任何错误。下面是我用来更新记录的代码:

<?php

include 'db_connect.php';

$city=$_POST['city'];
$state=$_POST['state'];
$zip=$_POST['zip'];
$id=$_REQUEST['id'];

 mysql_query("UPDATE `test` SET 
                                 `city` = '$city',
                                 `state` = '$state',
                                 `zip` = '$zip',
                           WHERE `id` = '$id'") 

?>
// remove the comma before where in this line
mysql_query("UPDATE `test` SET      `city` = '$city', `state` = '$state', `zip` = '$zip' WHERE `id` = '$id'");

您需要在表单中发布id

//Add this hidden field inside form to store and post id
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>"/>
// remove the comma before where in this line
mysql_query("UPDATE `test` SET      `city` = '$city', `state` = '$state', `zip` = '$zip' WHERE `id` = '$id'");

您正在通过GET方法传递id。因此,请使用$\u GET['id]获取id。将此id分配给隐藏字段。
比如:
让你的代码成为mysql注入的证据。不要使用
$\u请求
查看
mysqli
pdo
mysql_*
已弃用..我知道这家伙的,这只是一个我想使用的测试页面,所以注入或弃用不是问题。谢谢问题中的代码是否已更新。。我现在在问题中看到的唯一问题是“$zip”,WHERE”使用逗号。@CarlLindberg修改后的代码正在运行,我编辑它以删除逗号。我有一个名为“id”的隐藏输入字段,我只是没有php值,所以我添加了它,当我查看页面的源代码时,我可以看到字段中的值,但它仍然没有更新MySQL中的记录。我不知道这是怎么回事,但我键入“@cartina”,它不会出现在我的评论中!发布表单时,设置$id=$\u post['id'];更新会起作用。我确实设置了$id=$\u POST['id'];它没有发布,我现在发布的是我问题中的修订代码。你能像print\r($\u post)那样打印你的post数组并像echo$query那样回显你的查询吗=“更新
test
SET
city
=”$city“,
state
=”$state“,
zip
=”$zip”,其中
id
=“$id”"; 将这两行添加到update.php文件中,这样我就可以进行检查了,所以我添加了$id=$\u post['id'];在我的upate页面中,在隐藏的输入框中添加php值,但它仍然不会发布到mysqlit的记录中。它位于表单标记内,您可以在我的questionuse print\r($\u post)中看到更新的代码;检查值是否已发布。我正在使用它,如果您使用我问题中链接中的表单,您可以看到数组结果显示id,并且所有表单输入都假定已发布,但数据库中未发布任何内容。我知道我可以发布到db,因为我先添加了一条新记录,然后尝试更新它,但在更新中没有发布任何内容。
// remove the comma before where in this line
mysql_query("UPDATE `test` SET      `city` = '$city', `state` = '$state', `zip` = '$zip' WHERE `id` = '$id'");
 mysql_query("UPDATE `test` SET      `city` = '$city', `state` = '$state', `zip` = '$zip', WHERE `id` = '$id'");