2012-10-22 87 views
1

你好,我打算從我的sql打印時間總和,但我無法幫助我。如何從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); 

如何輸入$持續時間[$ n]至$次=陣列('18:00:00' , '零時39分00秒', '8點○○分00秒');次

+1

據我瞭解,你想放的foreach($持續時間$時間)來代替的foreach($倍$時間)? –

+0

SELECT SUM(duration)AS totalDuration FROM core_network GROUP BY列 echo $ row ['totalDuration']; –

+0

請不要使用'mysql_ *'函數來編寫新代碼。他們不再維護,社區已經開始[棄用程序](http://goo.gl/KJveJ)。查看[*紅色框*](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定哪些,[這篇文章](http://goo.gl/3gqF9)會幫助你。如果你選擇PDO,[這裏是很好的教程](http://goo.gl/vFWnC)。 –

回答

0

insteed只是通過$持續時間參數功能:

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