Scarface
Scarface

Reputation: 3913

Getting progress for two ongoing processes

When a user uploads a video, I do two conversions. A high res, and a low res. I use popen() in the upload processing script and run the linux ffmpeg conversion command for each conversion. When I used to have just one conversion, I simply calculated the progress based on the output of popen and put it in a database table (conversion_progress), and updated it as the process outputted results.

Now what I want to do is insert two entries into my conversion_progress table and calculate the difference of each progress. However when I use a select statement, since both entries have the same vid_id I cannot distinguish between each process since two rows are returned. I do not need need to and I would just like to obtain the average of both rows. Anyone have any suggestions on this?

$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;

returns 5070 meaning one upload is 50% and another is 70%. Can I use foreach or something to do a calculation on this?

Upvotes: 0

Views: 56

Answers (1)

Konerak
Konerak

Reputation: 39763

You might want to let MySQL take the average:

$sql = 'SELECT AVG(progress) AS progress from conv_progress WHERE vid_id=? GROUP BY vid_id';

Upvotes: 1

Related Questions