我有一个表( 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
答案 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();