1

我有这个输出代码:

$tot_clicks6 = $db->FetchArray($db->Query("SELECT SUM(visits) AS sum_visits FROM surf"));

<?=$tot_clicks6['sum_visits']?>

是显示总数。

4

2 回答 2

1

您的问题代表了对 PHP 的常见误解。代码块

<?=$tot_clicks6['sum_visits']?>

您的服务器中只有该代码。加载页面时,无论该变量的值是什么,它都会作为 HTML 提供。例如,

6

为了实时更新您的页面,您需要使用AJAX

看到这个问题

使用 JQuery/AJAX 从 PHP 文件中获取变量

于 2013-05-13T14:42:53.733 回答
1

或者您可以使用实时框架。我为 Realtime.co 工作,我们就是这样做的。

您可以在www.realtime.co获得免费许可证,在http://www.xrtml.org/downloads_62.html#pubsub:php获得 PHP API并在应该广播信息的页面上使用以下代码(您的例如管理页面)。注意:此代码与您可以在 Github 上找到的适用于您需要的 ORTC 示例 ( https://github.com/RTWWorld/pubsub-examples/tree/master/PHP ) 相同。

<?php
error_reporting(E_ALL);
session_start();
require('./ortc.php');

/* -------------------- */
/* REPLACE THESE VALUES */
/* -------------------- */
$URL = 'http://ortc-developers.realtime.co/server/2.1';
$AK = 'YOUR_APPLICATION_KEY';// your realtime.co application key
$PK = 'YOUR_APPLICATION_PRIVATE_KEY';// your realtime.co private key
$TK = 'YOUR_AUTHENTICATION_TOKEN';// token: could be randomly generated in the session
$CH = 'MyChannel'; //channel
$ttl = 180; 
$isAuthRequired = false;
$result = false;
/* -------------------- */
/*        END           */
/* -------------------- */

// ORTC auth
// on a live usage we would already have the auth token authorized and stored in a php session
// Since a developer appkey does not require authentication the following code is optional

if( ! array_key_exists('ortc_token', $_SESSION) ){    
    $_SESSION['ortc_token'] = $TK;       
}   

$rt = new Realtime( $URL, $AK, $PK, $TK );  

    // Your query
    $tot_clicks6 = $db->FetchArray($db->Query("SELECT SUM(visits) AS sum_visits FROM surf"));

if($isAuthRequired){
    $result = $rt->auth(
        array(
            $CH => 'w'
        ), 
        $ttl
    );//post authentication permissions. w -> write; r -> read
    echo 'authentication status '.( $result ? 'success' : 'failed' ).'<br/>';
}

if($result || !$isAuthRequired){
    $result = $rt->send($CH, tot_clicks6['sum_visits'], $response);
    echo ' send status '.( $result ? 'success' : 'failed' ).'<br/>';
}    

?>

在接收器页面上,您需要使用 JavaScript 接收数据并显示它。对于这个例子,我只是用数据提醒用户。

<!doctype html>
<html>
<head>
</head>
<body>

    <script src="http://code.xrtml.org/xrtml-3.2.0.js"></script>
    <script>
        var appkey = 'YOUR_APPLICATION_KEY';
        var url = 'http://ortc-developers.realtime.co/server/2.1';
        var authToken = 'YOUR_AUTHENTICATION_TOKEN';
        var channel = 'MyChannel';

        xRTML.load(function(){

            xRTML.Config.debug = true;

            xRTML.ConnectionManager.create({
                id: 'myConn',
                appkey: appkey,
                authToken: authToken,
                url: url,
                channels: [
                {name: channel}
                ]
            }).bind({
                message: function(e) {
                    alert(e);
                }
        });
        });
    </script>
</body>
</html>

使用此代码,您将不需要使用 AJAX 或类似的东西。您将能够将数据推送到浏览器。

希望能帮助到你!

于 2013-05-13T21:41:33.680 回答