来自数据库的实时新闻自动收报机


Live news ticker from database

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

<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>

谢谢

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

我相信这就是它应该的样子...

<?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 循环,使用 AJAX 更新<div>的内容,以便在每次循环运行时调用外部页面的内容。

那会像这样工作...

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);

因此,对于您的选框代码,您将在<marquee>内放置一个 <div> 标记,并为其提供一个 ID 以链接到 AJAX。

希望这有帮助!

你可以为此使用 jQuery

var ajax_call = function() {
  //your jQuery ajax code
};
var interval = 1000 * 60 * X; // where X is your every X minutes
setInterval(ajax_call, interval);

除了人们评论的问题......

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