当我将数据输入到进行php更新查询的html文件时,如何获得更新的数据以反映?

当我将数据输入到进行php更新查询的html文件时,如何获得更新的数据以反映?,php,html,mysql,Php,Html,Mysql,我有一个html文件,它调用DB表来提取记录,还有一个php文件,它更新对DB表的更改,并将用户引导回html文件(以重新加载更新的记录) html文件加载用户数据,获取输入,将其发布到php文件,php文件将其写入DB表,然后重新加载html文件。但是,重新加载时,它会显示旧记录信息,而不是新更新的信息。我查看了DB表,更新运行正常,我看到了新的信息。但这并不反映在页面上。我该如何解决这个问题 有更好的方法吗?谢谢 HTML文件: <?php session_start(); $_S

我有一个html文件,它调用DB表来提取记录,还有一个php文件,它更新对DB表的更改,并将用户引导回html文件(以重新加载更新的记录)

html文件加载用户数据,获取输入,将其发布到php文件,php文件将其写入DB表,然后重新加载html文件。但是,重新加载时,它会显示旧记录信息,而不是新更新的信息。我查看了DB表,更新运行正常,我看到了新的信息。但这并不反映在页面上。我该如何解决这个问题

有更好的方法吗?谢谢


HTML文件:

<?php

session_start();
$_SESSION['email'] = $email;
if(isset($_SESSION['email'])) {
    echo $_SESSION['email'], " is logged in."; // echoes 1
}
else {
    echo "User not logged in";
}
?>

<?php

$query = "SELECT email, username, address1, city, state, postalcode, country
          FROM users
          WHERE email = '$_SESSION[email]';";
$result = mysql_query($query);
if ($result) {
    $_SESSION['userdata'] = mysql_fetch_array($result, MYSQL_ASSOC);
}
mysql_close();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<body>
  <form name="userprofile" action="update.php" method="post">
    <fieldset>
      <legend>Update User Profile</legend>
      <br class="clear" />
      <label for="username">Username</label>
      <input type='text' name='username' value='<?php echo $_SESSION['userdata']['username']; ?>'/>
      <br class="clear" />

      <label for="address1">Address</label>
      <input type='text' name='address1' value='<?php echo $_SESSION['userdata']['address1']; ?>'/><br>
      <br class="clear" />

      <label for="city">City</label>
      <input type='text' name='city' value='<?php echo $_SESSION['userdata']['city']; ?>'/><br>
      <br class="clear" />

      <label for="state">State</label>
      <input type='text' name='state' value='<?php echo $_SESSION['userdata']['state']; ?>'/><br>
      <br class="clear" />

      <label for="postalcode">Postal code</label>
      <input type='text' name='postalcode' value='<?php echo $_SESSION['userdata']['postalcode']; ?>'/><br>
      <br class="clear" />

      <label for="country">Country</label>
      <input type='text' name='country' value='<?php echo $_SESSION['userdata']['country']; ?>'/><br>
      <br class="clear" />
      <br class="clear" />

    </fieldset>
    <input type="submit" value="Update" />
  </form>
</body>
</html>
<br class="clear" />

</form>
</html>

更新用户配置文件

一旦数据更新到数据库表中,您需要将更新的数据重新分配到会话中。您可能需要像这样修改代码

    <?php
session_start();

$_SESSION['email'] = $email;
if(isset($_SESSION['email'])) {
    echo $_SESSION['email'], " is logged in."; // echoes 1
}
else {
    echo "User not logged in";
}

$username = $_POST['username'];
$address1 = $_POST['address1'];
$city = $_POST['city'];
$state = $_POST['state'];
$postalcode = $_POST['postalcode'];
$country = $_POST['country'];

$dbhost = 'localhost';
$dbname = 'dbtable';
$dbuser = 'dbuser';
$dbpass = 'password'; //not really
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $conn);

$query = "UPDATE users
          SET   username ='$username',
                address1 = '$address1',
                city = '$city',
                state = '$state',
                postalcode = '$postalcode',
                country = '$country'
          WHERE email = '$_SESSION[email]';";

if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}

//echo $query;
$retval = mysql_query($query);

if($retval){
     $_SESSION['userdata']['username']=$username; 
     $_SESSION['userdata']['address1']=$address1; 
     $_SESSION['userdata']['city']=$city;
     $_SESSION['userdata']['state']=$state;
     $_SESSION['userdata']['postalcode']=$postalcode;
     $_SESSION['userdata']['country']=$country;
    echo "Updated data successfully\n";
    mysql_close();
    header('Location: update.html');
}else{
  die('Could not update data: ' . mysql_error());
}
?>

您可以在index.html页面中执行此操作。不需要index.php

<?php
session_start();
$dbhost = 'localhost';
$dbname = 'test';
$dbuser = 'root';
$dbpass = ''; //not really
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $conn);

$email='ripon';
$_SESSION['email'] = $email;
if(isset($_SESSION['email'])) {
    echo $_SESSION['email'], " is logged in."; // echoes 1
}
else {
    echo "User not logged in";
}
?>

<?php
if(isset($_POST['submit']))
{
    $username = $_POST['username'];
    $address1 = $_POST['address1'];
    $city = $_POST['city'];
    $state = $_POST['state'];
    $postalcode = $_POST['postalcode'];
    $country = $_POST['country'];
    echo $address1; 
    $dbhost = 'localhost';
    $dbname = 'test';
    $dbuser = 'root';
    $dbpass = ''; //not really
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    mysql_select_db($dbname, $conn);

    $query = "UPDATE user SET   password = '$address1' WHERE username = '$_SESSION[email]';";

    if(! $conn )
    {
      die('Could not connect: ' . mysql_error());
    }

    //echo $query;

    mysql_query($query) or die(mysql_error());
    $retval = mysql_query($query);

    if(! $retval )
    {
      die('Could not update data: ' . mysql_error());
    }
    echo "Updated data successfully\n";
    //mysql_close();
}


?>

<?php
$query = "SELECT  username, password, fullname FROM user WHERE username = '$_SESSION[email]';";
$result = mysql_query($query);
if ($result) {
    $_SESSION['userdata'] = mysql_fetch_array($result, MYSQL_ASSOC);
}
else
{
echo "error";
echo $query;
}
//mysql_close();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<body>
<?php var_dump($_SESSION['userdata']);?>
  <form name="userprofile" action="update.html" method="post">
    <fieldset>
      <legend>Update User Profile</legend>
      <br class="clear" />
      <label for="username">Username</label>
      <input type='text' name='username' value='<?php echo $_SESSION['userdata']['username']; ?>'/>
      <br class="clear" />

      <label for="address1">Address</label>
      <input type='text' name='address1' value='<?php echo $_SESSION['userdata']['password']; ?>'/><br>
      <br class="clear" />

      <label for="city">City</label>
      <input type='text' name='city' value='<?php echo $_SESSION['userdata']['city']; ?>'/><br>
      <br class="clear" />

      <label for="state">State</label>
      <input type='text' name='state' value='<?php echo $_SESSION['userdata']['state']; ?>'/><br>
      <br class="clear" />

      <label for="postalcode">Postal code</label>
      <input type='text' name='postalcode' value='<?php echo $_SESSION['userdata']['postalcode']; ?>'/><br>
      <br class="clear" />

      <label for="country">Country</label>
      <input type='text' name='country' value='<?php echo $_SESSION['userdata']['country']; ?>'/><br>
      <br class="clear" />
      <br class="clear" />

    </fieldset>
    <input type="submit" value="Update"  name="submit"/>
  </form>
</body>
</html>
<br class="clear" />

</form>
</html>


另外,我如何获得更新以显示它已成功更新。当我重新加载html页面时,它似乎会刷新页面,更新成功消息似乎已被覆盖,因此我看不到它。您无法看到“更新数据成功”,因为页面被重定向到update。htmlAH有意义。。。显示数据已成功更新并且仍然能够使用更新的数据重新显示更新的页面的最佳方式是什么?谢谢。这很有效。只是不确定是否要将所有html和代码粘贴到1页上。谢谢。我试过这个,这个也管用。我没有重新分配所有变量,而是在php文件中的更新之后对表执行SQL选择。这似乎更新了所有会话变量,然后将这些变量传递回html文件,代码也稍微短了一点。谢谢。我只是想知道为什么当我使用头从php文件调用html文件时,它没有用sql select语句重新填充会话变量。当我在php文件中重新填充会话变量时,它起作用了。奇怪的行为。
<?php
session_start();
$dbhost = 'localhost';
$dbname = 'test';
$dbuser = 'root';
$dbpass = ''; //not really
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $conn);

$email='ripon';
$_SESSION['email'] = $email;
if(isset($_SESSION['email'])) {
    echo $_SESSION['email'], " is logged in."; // echoes 1
}
else {
    echo "User not logged in";
}
?>

<?php
if(isset($_POST['submit']))
{
    $username = $_POST['username'];
    $address1 = $_POST['address1'];
    $city = $_POST['city'];
    $state = $_POST['state'];
    $postalcode = $_POST['postalcode'];
    $country = $_POST['country'];
    echo $address1; 
    $dbhost = 'localhost';
    $dbname = 'test';
    $dbuser = 'root';
    $dbpass = ''; //not really
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    mysql_select_db($dbname, $conn);

    $query = "UPDATE user SET   password = '$address1' WHERE username = '$_SESSION[email]';";

    if(! $conn )
    {
      die('Could not connect: ' . mysql_error());
    }

    //echo $query;

    mysql_query($query) or die(mysql_error());
    $retval = mysql_query($query);

    if(! $retval )
    {
      die('Could not update data: ' . mysql_error());
    }
    echo "Updated data successfully\n";
    //mysql_close();
}


?>

<?php
$query = "SELECT  username, password, fullname FROM user WHERE username = '$_SESSION[email]';";
$result = mysql_query($query);
if ($result) {
    $_SESSION['userdata'] = mysql_fetch_array($result, MYSQL_ASSOC);
}
else
{
echo "error";
echo $query;
}
//mysql_close();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<body>
<?php var_dump($_SESSION['userdata']);?>
  <form name="userprofile" action="update.html" method="post">
    <fieldset>
      <legend>Update User Profile</legend>
      <br class="clear" />
      <label for="username">Username</label>
      <input type='text' name='username' value='<?php echo $_SESSION['userdata']['username']; ?>'/>
      <br class="clear" />

      <label for="address1">Address</label>
      <input type='text' name='address1' value='<?php echo $_SESSION['userdata']['password']; ?>'/><br>
      <br class="clear" />

      <label for="city">City</label>
      <input type='text' name='city' value='<?php echo $_SESSION['userdata']['city']; ?>'/><br>
      <br class="clear" />

      <label for="state">State</label>
      <input type='text' name='state' value='<?php echo $_SESSION['userdata']['state']; ?>'/><br>
      <br class="clear" />

      <label for="postalcode">Postal code</label>
      <input type='text' name='postalcode' value='<?php echo $_SESSION['userdata']['postalcode']; ?>'/><br>
      <br class="clear" />

      <label for="country">Country</label>
      <input type='text' name='country' value='<?php echo $_SESSION['userdata']['country']; ?>'/><br>
      <br class="clear" />
      <br class="clear" />

    </fieldset>
    <input type="submit" value="Update"  name="submit"/>
  </form>
</body>
</html>
<br class="clear" />

</form>
</html>