2012-10-22 1 views
1

Bonjour je vais somme d'impression du temps de mon sql, mais je ne pouvais pas me aider s'il vous plaît.comment trouver la somme du temps de mysql

$SQL = "SELECT duration FROM core_network "; 
$result = mysql_query($SQL); 


$c_count='0'; 
$n="0"; 
$duration=array(); 
while ($db_field = mysql_fetch_array($result)) { 
$duration[$n]= $db_field['duration']; 
echo $duration[$n]; 
$n++; 
$c_count++; 
} 





the result is 18:00:0000:39:0008:00:00 


than i found the code from internet 


function sum_the_time($Duration) { 
$times = array('18:00:00','00:39:00','08:00:00'); 
$seconds = 0; 
foreach ($times as $time) 
{ 
    list($hour,$minute,$second) = explode(':', $time); 
    $seconds += $hour*3600; 
    $seconds += $minute*60; 
    $seconds += $second; 
} 
$hours = floor($seconds/3600); 
$seconds -= $hours*3600; 
$minutes = floor($seconds/60); 
$seconds -= $minutes*60; 
    // return "{$hours}:{$minutes}:{$seconds}"; 
return sprintf('%02d:%02d:%02d', $hours, $minutes, $seconds); 
    } 
echo sum_the_time($duration); 

comment entrer la durée de $ [n $] à temps $ = array ('18: 00: 00' , '0:39:00', '08:00:00'); insteed fois

+1

que je comprends que vous voulez mettre foreach ($ Durée en $ temps) au lieu de foreach (temps $ en $ temps)? –

+0

SELECT SUM (durée) AS totalDuration DE GROUPE core_network PAR colonne echo $ row [ 'totalDuration']; –

+0

S'il vous plaît, ne pas utiliser les fonctions de '' mysql_ * pour écrire un nouveau code. Ils ne sont plus entretenus et la communauté a commencé [processus de dépréciation] (http://goo.gl/KJveJ). Voir la [* boîte rouge *] (http://goo.gl/GPmFd)? Au lieu de cela, vous devriez en apprendre davantage sur les [instructions préparées] (http://goo.gl/vn8zQ) et utiliser soit [PDO] (http://php.net/pdo) ou [MySQLi] (http://php.net/ mysqli). Si vous ne pouvez pas décider lequel, [cet article] (http://goo.gl/3gqF9) vous aidera. Si vous choisissez PDO, [voici un bon tutoriel] (http://goo.gl/vFWnC). –

Répondre

0

passe juste $ durée comme argument à la fonction:

function sum_the_time($times) { 
$seconds = 0; 
foreach ($times as $time) 
{ 
    list($hour,$minute,$second) = explode(':', $time); 
    $seconds += $hour*3600; 
    $seconds += $minute*60; 
    $seconds += $second; 
} 
$hours = floor($seconds/3600); 
$seconds -= $hours*3600; 
$minutes = floor($seconds/60); 
$seconds -= $minutes*60; 
    // return "{$hours}:{$minutes}:{$seconds}"; 
return sprintf('%02d:%02d:%02d', $hours, $minutes, $seconds); 
    } 
echo sum_the_time($duration);