获取不同的值Mysql并乘以PHP

时间:2015-12-05 11:18:06

标签: php mysql

我有一个表( MySQL ),其中包含课程行。在每一行中,都有一个计数器页面视图和课程的持续时间。我能够找到一个功能( PHP ),它会告诉我上课时间,并添加所有其他课程。

我的表文章

function *giveNumbers() {
    let list = [1, 2, 3];
    for (let i = 0; i < list.length; i++) {
        yield list[i];
    }
}

总数为:(5 * 20)+(40 * 0)+(30 * 6)= 280分钟,小时转换:4,6667小时(4小时无小数)

我的功能有效,但这不是正确的计算方法。此函数将总视图与总分钟相乘。 我知道我们必须首先将每个课程与相关的视图数相乘,并将所有这些结果加在一起。但我不知道如何。

id | time | views
-----------------
1  |  5   | 20
2  |  40  | 0
3  |  30  | 6

2 个答案:

答案 0 :(得分:1)

您可以使用1个查询来获得280的结果:

select sum(time_views) from (select id,time*views as time_views from articles) a

如果您想从查询中获取时间,可以使用:

select round(sum(time_views)/60) from (select id,time*views as time_views from articles) a

以上将给出5小时,但下面将给出4小时:

select floor(sum(time_views)/60) from (select id,time*views as time_views from articles) a

答案 1 :(得分:1)

我认为这将解决您的问题

<?php

function hoursLessons() {

    $con = new mysqli('localhost', 'root', 'root', 'myDB');

    $sql = "SELECT (`time` * `views`) AS `times` FROM `articles`";
    $query = $con->query($sql);

    $minutes_total = 0;
    while ($result = $query->fetch_array(MYSQLI_ASSOC)) {
        $minutes_total += $result["times"];
    }

    // Convert Minutes to Hours

    $totalHours = floor($minutes_total / 60);

    return $totalHours;
}

echo hoursLessons();