每隔10秒显示PDO查询的结果

时间:2014-01-08 13:16:27

标签: javascript php pdo

不确定这是否可行但是在这里,我有一个基本的PDO查询,将结果存储在一个数组中。

<?php
// configuration
$dbtype     = "";
$dbhost     = "";
$dbname     = "";
$dbuser     = "";
$dbpass     = "";
// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
$title = 'PHP AJAX';
// query
$sql = "SELECT * FROM thankyou";
$q = $conn->prepare($sql);
$q->execute(array($title));
$q->setFetchMode(PDO::FETCH_BOTH);
// fetch
while($r = $q->fetch()){
echo"<br>";
print_r ($r);
}
?>

现在我无法理解,我也从未使用过JavaScript。我可以旋转结果以一次显示一个5-10秒然后显示另一个吗?它可以是随机的也可以是有序的,我不会被打扰。我发现这个有用,但无法弄清楚如何将数组放入其中。我知道一个是客户端,一个是服务器端。

<script type="text/javascript">
var rotatingTextElement;
var rotatingText = new Array();
var ctr = 0;

function initRotateText() {
rotatingTextElement = document.getElementById("textToChange");
rotatingText[0] = rotatingTextElement.innerHTML; // store the content that's already on     the page
rotatingText[1] = "need to write PDO array here";
setInterval(rotateText, 5000);
}
function rotateText() {
ctr++;
if(ctr >= rotatingText.length) {
ctr = 0;
}
rotatingTextElement.innerHTML = rotatingText[ctr];
}
window.onload = initRotateText;
</script>

这是结果显示

<span id="textToChange">this is were the result is displayed</span>

如果我需要以完全不同的方式做到这一点,如果有人能指出我正确的方向,这不是问题。

2 个答案:

答案 0 :(得分:0)

如果您对JavaScript不熟悉,我还建议使用一些JS库来完成任务。事实上,Prototype.js有一个完全符合此目的的类:http://prototypejs.org/doc/latest/ajax/Ajax/PeriodicalUpdater/index.html

一个工作示例:http://www.tutorialspoint.com/prototype/prototype_ajax_periodicalupdater.htm

答案 1 :(得分:0)

我决定使用AJAX最终调用一个单独的PHP页面并且工作正常,这是更新的页面。

<script type="text/javascript">
  $(function() {
      getStatus();
});
function getStatus() {
    $('div#status').load('thankyou.php')//Thankyou being the page the query is on
    setTimeout("getStatus()",5000);//refreshes every 5 seconds
}
</script>

查询本身是标准PDO

$query = $db->query("SELECT * FROM `thankyou` ORDER BY RAND() LIMIT 1

感谢所有指针。