Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中显示SUM()_Php_Mysql_Sql - Fatal编程技术网

如何在php中显示SUM()

如何在php中显示SUM(),php,mysql,sql,Php,Mysql,Sql,我有一个显示前30名用户的功能。它必须为每个用户显示“视图”列。我正试着用echo打印出来,但是什么也没有出来 function Wo_FeaturedUsers($limit = '', $type = '') { global $wo, $sqlConnect; if ($wo['loggedin'] == false) { return false; } $data = array(); $logged_user_id = $wo['

我有一个显示前30名用户的功能。它必须为每个用户显示“视图”列。我正试着用echo打印出来,但是什么也没有出来

function Wo_FeaturedUsers($limit = '', $type = '')
{
    global $wo, $sqlConnect;
    if ($wo['loggedin'] == false) {
        return false;
    }
    $data = array();
    $logged_user_id = $wo['user']['user_id'];
    $query_one = " SELECT `user_id`  FROM `Wo_Posts` WHERE  `user_id` =`user_id`";
    $sql = mysqli_query($sqlConnect, $query_one);
    $mysql_count = mysqli_num_rows($sql);
    if ($mysql_count > 27) {
        $query_one = " SELECT `user_id`, SUM(views)
FROM `Wo_Posts`
WHERE `time` >= DATE_SUB( CURRENT_DATE, INTERVAL 90
DAY ) AND page_id = 0 GROUP BY `user_id`
ORDER BY  SUM(`views`) DESC LIMIT 30
";
        $sql = mysqli_query($sqlConnect, $query_one);
        while ($fetched_data = mysqli_fetch_assoc($sql)) {
            $data[] = Wo_UserData($fetched_data['user_id']);
        } 
    } else {
        while($row = mysql_fetch_assoc($sql)) {
            $sum = $row["SUM(views)"];
        }
    }
    return $data;
}

在执行SQL查询时,将
用作
关键字

SELECT `user_id`, SUM(views) AS my_sum FROM `Wo_Posts`
....
ORDER BY my_sum DESC
然后您就可以通过PHP在数组的
my_sum
键中轻松访问它

$sum = $row["my_sum"];

但如果您检查代码,则仅当第一个查询包含超过27个条目时,您才执行从DB中检索的
my_sum
。若它的值不超过27,那个么您需要检查您的和值,它不在第一个查询中

while($row = mysql_fetch_assoc($sql)) {
    $sum = $row["SUM(views)"];
}

此代码位于错误的位置。While循环应该在
if
语句中,否则您的总和不会从数据库中检索到,因为您在第二次查询中正在从数据库中读取总和。

我试图使用AS,但没有结果@МаааачI更新的答案。事实上27号是什么?我不懂php,所以我申请了帮助请帮助$sql=mysqli\u query($sqlConnect,$query\u one);{$query\u one=“选择
user\u id
,SUM(views)作为我在
Wo\u Posts
WHERE
time
>=DATE\u SUB(当前日期,间隔90天)和page\u id=0按
user\u id
ORDER BY my\u SUM DESC LIMIT 30分组”;$sql=mysqli\u查询($sqlConnect,$query\u one);而($fetched_data=mysqli_fetch_assoc($sql)){$sum=$row[“my_sum”];$data[]=Wo_UserData($fetched_data['user_id']);}}返回$data;}