我有一个HTML网站,其网页使用PHP代码查询MySQL数据库。该表包含3列(日期,时间,剩余)。根据当前的日期和时间,我希望HTML页面返回并显示"剩余的"柱。
技巧是我希望这个值能够自动更新(AJAX?)而无需用户刷新页面或点击按钮。
到目前为止,我的PHP工作原理是显示"剩余的"基于日期的价值,但我还没有弄清楚如何查询日期和时间,也无法自动刷新。
PHP代码我到目前为止已经找到了
(注意:quantitytest_config.php
只包含主机名/用户名/密码)
<?php
include 'quantitytest_config.php';
//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
//select a database to work with
$selected = mysql_select_db("grace59_countdown",$dbhandle)
or die("Could not select countdown");
//execute the SQL query and return records
$result = mysql_query("SELECT remaining FROM quantity WHERE salesdate=CURDATE()");
//fetch tha data from the database
while ($row = mysql_fetch_array($result)) {
echo "Quantity:".$row{'remaining'}."<br>";
}
//close the connection
mysql_close($dbhandle);
?>
提前感谢您的帮助。非常感谢。
答案 0 :(得分:2)
使用jQuery.load
,这是一件轻而易举的事,以下代码片段将调用您的PHP脚本并每10秒更新一次剩余计数。
setInterval(function(){
// Assumes the container has the id of count
// and the php script is called remaining.php
$("#count").load("remaining.php")
}, 10000);
如果没有jQuery,你将不得不做一些阅读,但这并不难。
至于您在同一问题中嵌入的任何其他问题。你不应该多个问题。每个问题都应该显示您尝试过的内容,预期/实际行为,错误消息。这就是你的问题如何对其他人有用,而不仅仅是你自己,这是Stack Overflow的核心。目前你的问题是我不知道该怎么做,而且这不太适合SO。
答案 1 :(得分:1)
正如您所提到的,您应该使用AJAX。
基本上,您会不时地调用页面并检查新结果(如果存在)并将其检索给用户。
您要调用的页面是一个PHP文件,就像您发布的那样,它将返回AJAX调用的结果。
通话结束后,结果将显示给用户。
通常,在AJAX中GET方法更快,因为它不涉及处理POST字段,并且,因为你只是获取信息,我会坚持它。
这是您正在寻找的基本语法。我猜它有一些复杂但可以理解的名字。
<script>
setInterval(function(){check_new_stuff();}, 10000);
function check_new_stuff(){
$.ajax({
type: "GET",
url: "url_with_your_php_code.php",
dataType: 'html',
data: {name_of_the_parameter_to_be_passed_in_get: value_of_the_parameter_to_be_passed_in_get},
success: function(html){
$("#div_to_have_its_html_replaced_with_the_result_from_php_code").html(html);
},
error: function(){
},
complete: function(){
}
});
setTimeout(function(){check_new_stuff();}, 10000);
}
</script>
(你可以read more about this here)
关于你的时间问题,我没有看到问题。您只需要添加字段并在数据库查询中向其传递时间值吗?
(如果您想要当前时间? - 尝试猜测您的列名称,因为您不会在整个说明中保持表格命名相同)
$result = mysql_query("SELECT remaining FROM quantity WHERE salesdate=CURDATE() AND salestime=CURTIME()");
(具体时间,由您自己指定?)
$result = mysql_query("SELECT remaining FROM quantity WHERE salesdate=CURDATE() AND salestime='11:15:00'");