PHP查询返回相同的数据,即使它发生了变化

时间:2015-11-28 06:45:28

标签: javascript php jquery mysql

我正在尝试循环访问数据以建立聊天系统。 我做了一个php函数:

function getLatestMessageTime() {
    $handler = new PDO('mysql:host=localhost;dbname=*****', '******', '*******');

    // Set the query \\
    $query = $handler->query('SELECT `time` FROM `messages`');

    // Loop through the data \\
    $latestTime = 0;
    while ($row = $query->fetch()) {
        if ($row['time'] > $latestTime) {
            $latestTime = $row['time'];
        };
    };

    // Return the latest message time \\
    Return $latestTime;
}

我设置循环jQuery代码:

var latestTime = <?php echo getLatestMessageTime(); ?>;
latestTimeLoop();
function latestTimeLoop() {
    if (latestTime < <?php echo getLatestMessageTime(); ?>) {
        $("#container").load('ajaxLoad.php?time='+latestTime);
    };

    document.log(latestTime + " - " + <?php echo getLatestMessageTime(); ?>);
    setTimeout(latestTimeLoop, 200);
}

但是当我将phpMyAdmin中的时间更改为远远高于其余数据时,它在我的console.logs中不会更新。看起来我的查询在我的函数中没有多次出现,它只抓取一次数据而不是每次我的javascript代码循环时都请求它。

每次循环时都有重置查询的方法吗?

View Full Code

1 个答案:

答案 0 :(得分:1)

在查询中使用ORDER BY,并将查询限制为一个。

$query = $handler->query('SELECT `time` FROM `messages` ORDER BY `time` DESC LIMIT 1');

只需要最后的记录详细信息即可获得最新的消息时间。这就是为什么我说使用限制并根据它修改PHP代码。