Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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 计数通过总和查询生成的记录_Php_Mysql - Fatal编程技术网

Php 计数通过总和查询生成的记录

Php 计数通过总和查询生成的记录,php,mysql,Php,Mysql,我有一个由查询填充的HTML表: $sql = "SELECT user_id , pag_title , SUM(pag_views) FROM views WHERE user_id = '". $id ."' GROUP BY pag_title"; 查询的输出可以是(p.e.): 标题1 35标题2 25 如何计算35+25+…?我想要一个总和。使用一个PHP变量(例如称为$sum)并在迭代行时将总和放在那里怎么样 在另一种情况下,您可以将带有ROLLUP的放在GRO

我有一个由查询填充的HTML表:

         $sql = "SELECT user_id , pag_title , SUM(pag_views) FROM views WHERE user_id = '". $id ."' GROUP BY pag_title";
查询的输出可以是(p.e.):

标题1 35
标题2 25


如何计算
35+25+…
?我想要一个总和。

使用一个PHP变量(例如称为
$sum
)并在迭代行时将总和放在那里怎么样

在另一种情况下,您可以将带有ROLLUP的
放在GROUP BY的末尾,这样您的结果集中就有了一个额外的行,其中包含您需要的总和。

使用:

$sql = "SELECT sum(view) from(SELECT user_id , pag_title , SUM(pag_views) as view FROM views WHERE user_id = '". $id ."' GROUP BY pag_title) as a"; 

这应该能奏效。它选择特定用户的所有视图的总和:

$sql = "SELECT SUM(pag_views) FROM views WHERE user_id = '". $id ."'";
更新

假设您将PHP与mySQL结合使用,类似的方法应该可以工作:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT SUM(pag_views) FROM views WHERE user_id = '". $id ."'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "views: " . $row[0]. "<br>";
    }
} else {
    echo "0 results";
}
$conn->close();
?> 

您是否尝试过使用类似$sql=“从user\u id=”的视图中选择pag\u title,SUM(pag\u视图)”$id.“按页面标题、页面视图分组”。请参阅这里的更多信息,您想用SQL或javascript计算总和吗?如果在Javascript中,输出看起来如何?不,它是纯PHP、MYSQL。这里没有Javascript。您是否尝试过从用户id=“$id.”的视图中选择pag_title,SUM(pag_视图)按pag_title分组?是的,我尝试过,但如果我使用$num_rows=mysql_num_rows($res),那么我有pag_title的总和,但没有pag_视图。您能解释一下您的意思吗?我不明白?我想你应该循环使用
msqli\u fetch\u assoc
或类似的东西来打印结果。因此,当您这样做时,您还可以将页面显示的值相加为
$sum
变量(初始化为0)。这样,最终你就拥有了你所需要的价值。它起作用了。我使用$tot_pag_views=$row['SUM(pag_views)';在我的msqli_fetch_assoc中。感谢您的帮助。我如何获得价值?如果我使用mysql\u num\u行,它将不起作用。谢谢你的回答JamesBlond。这真是一件愚蠢的事情。使用JamesBlond建议的查询可以得到相同的结果,并且查询速度要慢得多。