当用户上传视频时,我会进行两次转换。一个高分辨率,一个低分辨率。我在上传处理脚本中使用popen(),并为每次转换运行linux ffmpeg转换命令。当我以前只有一次转换时,我只是根据popen的输出计算进度并将其放入数据库表(conversion_progress
)中,并将其更新为流程输出结果。
现在我想要做的是将两个条目插入到我的 conversion_progress
表中并计算每个进度的差异。但是,当我使用 select 语句时,由于两个条目具有相同的 vid_id,因此我无法区分每个进程,因为返回了两行。我不需要,我只想获得两行的平均值。大家对此有什么建议吗?
$sql = 'SELECT progress from conv_progress WHERE vid_id=?';
$stmt4 = $conn->prepare($sql);
$result=$stmt4->execute(array('123')) or die(print_r($db->errorInfo(), true));
while ($row=$stmt4->fetch(PDO::FETCH_ASSOC)){
$data['progress']=$row['progress'];
}
$out = json_encode($data);
print $out;
返回 5070 表示一次上传为 50%,另一次上传为 70%。我可以使用 foreach 或其他东西对此进行计算吗?
最佳答案
您可能想让 MySQL 取平均值:
$sql = 'SELECT AVG(progress) AS progress from conv_progress WHERE vid_id=? GROUP BY vid_id';
关于php - 两个正在进行的流程取得进展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6720751/