如何从mysql记录中获取“ID”号并使用它来使用php更新该记录?

时间:2013-05-31 06:13:07

标签: php mysql

这是我的测试表单(删除表单的链接)如果您点击更新票证链接,它将带您到一个页面,以向记录添加其他信息。我看到该记录的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'");



?>

2 个答案:

答案 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'");