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 に答える