首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库中的实时新闻播报

数据库中的实时新闻播报
EN

Stack Overflow用户
提问于 2014-12-16 16:45:40
回答 3查看 1.7K关注 0票数 1

我试图在互联网上找到一些简单的解决方案,用来制作新闻播报机,通过它从数据库中的数据中自行更新。这就是我现在拥有的。你能帮帮我吗?

代码语言:javascript
复制
<html>
<body>
 <?php
  $dbhost='localhost';
  $dbuser='root';
  $dbpass='password';
  $db='base';
  $conn = @mysql_connect($dbhost,$dbuser,$dbpass);
  mysql_select_db($db);
  $query= "SELECT * FROM mbblog ORDER BY id DESC";
  $result= mysql_query ($query);
  $news = $mbblog['short_news'];
 ?>

  <marquee behavior="scroll" direction="left" 
      onmouseover="this.stop();" 
      onmouseout="this.start();">
        <h1><?php echo $news; ?></h1>
  </marquee>

</body>
</html>

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-16 17:28:30

您可以为此使用jQuery

代码语言:javascript
复制
var ajax_call = function() {
  //your jQuery ajax code
};

var interval = 1000 * 60 * X; // where X is your every X minutes

setInterval(ajax_call, interval);
票数 0
EN

Stack Overflow用户

发布于 2014-12-16 17:12:37

我猜你的问题是你没有从数据库中获取数据?如果是这样的话,看起来您缺少一行代码来读取从查询中获得的信息。

我相信这就是它应该看起来的样子。

代码语言:javascript
复制
<?php
 $dbhost = 'localhost';
 $dbuser = 'root';
 $dbpass = 'password';
 $db = 'base';
 $conn = mysql_pconnect($dbhost,$dbuser,$dbpass);
 mysql_select_db($db, $conn);

 $result = mysql_query("SELECT * FROM mbblog ORDER BY id DESC");
 $mbblog = mysql_fetch_assoc($result);
 $news = $mbblog['short_news'];

 mysql_close($conn);
?>

如果您希望它自动更新(例如每5秒更新一次),可以使用AJAX,只需将上面的代码放在外部页面上,确保它是echo$news变量,并使用JavaScript循环更新<div>的内容,每次循环运行时都使用AJAX调用外部页面的内容。

会像这样工作..。

代码语言:javascript
复制
window.setInterval(function get()
{
    var xmlhttp;
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.open("GET","LOCATION_OF_CODE.php?session=" + Math.random(),true);
    xmlhttp.send();

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("ELEMENT_TO_DISPLAY_CONTENT").innerHTML=xmlhttp.responseText;
        }
    }
}, 5000);

因此,对于标记代码,您可以在<div>中放置一个<marquee>标记,并给它一个ID来链接到AJAX。

希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2014-12-16 17:07:27

除了人们评论的那些问题..。

实现这一目标的最佳方法是将ajax调用设置为在计时器上运行。一旦触发定时器,然后对数据库进行ajax调用并提取数据。您甚至可以在每次更新时添加查找Max ID的功能,并在数据库中检查该ID与Max ID,以减少某些执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27509674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档