这是我的测试表单(删除表单的链接)如果您点击更新票证链接,它将带您到一个页面,以向记录添加其他信息。我看到该记录的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'")
?>
我在表单中添加了一个隐藏的输入字段,其名称为“id”,认为这是错误但没有变化。我究竟做错了什么?传递id我需要做什么?谢谢!
添加更新表单的代码:
<html>
<body>
<form action="update.php" method="post">
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>">
City <input type="text" name="city">
State<input type="text" name="state">
Zip <input type="text" name="zip">
<input type="submit" value="update">
</form>
</body>
</html>
修订更新代码:
<?php
include 'db_connect.php';
$city=$_POST['city'];
$state=$_POST['state'];
$zip=$_POST['zip'];
$id=$_POST['id'];
mysql_query("UPDATE `test` SET `city` = '$city', `state` = '$state', `zip` = '$zip' WHERE `id` = '$id'");
?>
答案 0 :(得分:5)
您需要使用表单发布ID。
//Add this hidden field inside form to store and post id
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>"/>
发布表单时,id会丢失。所以我们需要存储它并将其与表单一起发送。
// remove the comma before where in this line
mysql_query("UPDATE `test` SET `city` = '$city', `state` = '$state', `zip` = '$zip' WHERE `id` = '$id'");
答案 1 :(得分:3)
您正在通过GET方法传递ID。所以使用$ _GET ['id]来获取id。将此ID分配给隐藏字段。
喜欢:<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>"/>
在更新页面中。 $ id = $ _ POST ['id']; //通过post方法获取id值
mysql_query("UPDATE `test` SET `city` = '$city', `state` = '$state', `zip` = '$zip', WHERE `id` = '$id'");