0

我有以下代码:

$sql = mysql_query("UPDATE users SET name='$name' WHERE email='$email'") or die(mysql_error());
echo "<h4>Your information has been updated</h4><br />";
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <p>
        <label for='name'>Name</label><br /><br />
        <input class="input-text required" name="name" type="text" value="<?php echo $row[name]; ?>" />
    </p>
    <p><input type="submit" name="update" value="Update" /></p>
</form>

单击更新后,它会更新数据库中的信息,但<?php echo $row['name']; ?>仍显示旧值。只有在刷新页面后才会显示更新的信息。我可以在更新后通过回显元刷新来刷新页面,但我希望它仍然显示回显“您的信息已更新”,如果我将其设置为刷新,则不会发生这种情况。有什么解决办法吗?

4

2 回答 2

1

您将需要重新查询数据库以重新填充$row或将$row变量显式设置为您的值(为了安全起见,我建议重新填充它)。

或者echo $name,而不是$row[name]

于 2012-10-06T20:21:04.880 回答
1

数据库的更新不是数据的新选择。

您有 2 个选项:

  • 更新后,重新选择数据
  • 不是将行写回表单,而是写回发布的值
于 2012-10-06T20:21:58.887 回答