如何根据数据库中的更新使我的php页面更改?

时间:2016-04-07 16:56:58

标签: php mysql database-connection

我在这里有一张员工表,看他们是在办公室还是外面。我有一个php文件来从数据库中选择状态。我尝试在数据库中将状态从out更改为in和in-out但在重新加载之前我无法看到我的php页面中的任何更改。当数据库发生变化时,如何自动更改我的php页面?我是新手所以请帮帮忙...先谢谢。我在这里有php文件:

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'pass';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT Name,Status FROM Employees';

mysql_select_db('new');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    echo "Name :{$row['Name']}  <br> ".
         "Status: {$row['Status']} <br> ".
         "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>

3 个答案:

答案 0 :(得分:0)

HTTP不是异步协议。刷新网页上数据的唯一方法是重新加载页面,例如:重新执行SQL查询,解析并显示结果。你可以使用AJAX方法做你想做的事情..但是,我在内部&#34;做了类似的事情。页面每5分钟重新加载一次......

<!DOCTYPE html>
<html>
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<script type="text/JavaScript">
<!--
function timedRefresh(timeoutPeriod) {
setTimeout("location.reload(true);",timeoutPeriod);
}
//   -->
</script>
<title>TITLE</title>
</head>
<body onload="JavaScript:timedRefresh(300000);">
<?php //do the query, display results ...
?>
</body>
</html>

答案 1 :(得分:0)

如果你真的想要这个,你可以每5秒做一次ajax请求,发送带有请求的旧值并将它们与数据库进行比较,如果有差异则触发刷新,这样你只需刷新你的有实际更新时的页面。 (或者你只需​​每隔5秒使用ajax更新它,看起来比整页刷新更干净)

两者都需要轮询,没有简单的方法可以做到这一点,而不需要每隔几秒就检查一次。

答案 2 :(得分:-2)

使用以下mysql

 while($row = mysql_fetch_array($retval))
    {
        echo "Name :{$row['Name']}  <br> ".
             "Status: {$row['Status']} <br> ".
             "--------------------------------<br>";
    }