我有一个事实数据库,我想随机显示其中一个事实,比如10秒,然后选择另一个事实并显示10秒钟等等。
目前我可以使用下面的代码显示随机事实,但我对如何显示10秒然后显示不同的事实感到有点困惑。任何帮助或建议都会很棒吗?感谢。
<?php
$linkid = $_GET['linkID'];
$query = "SELECT *
FROM facts
ORDER BY RAND()
LIMIT 1";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$factxt = $row ['factxt'];
echo $factxt;
}
?>
嗨,好的,我尝试了下面建议的两种方法,使用ajax和jquery,但两者都从数据库返回相同的错误:
警告:mysql_query()[function.mysql-query]:无法通过第4行的getfact.php中的套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器
这是getfact.php的第4行,$query = "SELECT * FROM facts order by rand() limit 1";
$result = mysql_query($query);
有什么我做错了吗?
答案 0 :(得分:3)
您可以在jQuery库的帮助下使用Ajax。
示例代码:
setInterval(retrieveFact, 10000); // call retrieveFact() every 10 seconds
function retrieveFact() {
// make an asynchronous call to getfact.php
$.post('/getfact.php', function(data) {
// when it returns, set the content of div with id=#factbox
$('#factbox').html(data);
});
});
此处,getfact.php
将是您在问题上粘贴的代码。
在你的html某处放置将接收文本的元素:
<div id="factbox"></div>
更多参考资料:
答案 1 :(得分:2)
首先,您必须包含jQuery库,然后使用此示例代码。
somefile.php / HTML:
<script type="text/javascript" src="jquery.min.js"></script>
<script>
function getRand() {
$.ajax({
url: "getFact.php",
success: function(response) {
$("#random").html(response).hide().fadeIn("slow");
}
});
};
setInterval("getRand()", 10000);
</script>
<div id="random"></div>
getFact.php:
<?php
$linkid = $_GET['linkID'];
$query = "SELECT * FROM facts order by rand() limit 1";
$result = mysql_query($query);
$factxt= $row ['factxt'];
echo $factxt;
?>
当LIMIT为1时,您不需要将信息放入循环中。
答案 2 :(得分:0)
您可以使用ajax,其间隔通过ajax / getJSON加载某些数据,或者在iframe中加载此页面,并每10秒添加一次自动刷新(元刷新)。