我在这里有一张员工表,看他们是在办公室还是外面。我有一个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);
?>
答案 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>";
}