我有这个代码从数据库中提取数据,运行时以hh:mm格式显示每条记录的时间总数,例如00:35,持续35分钟。
$query="SELECT * FROM data1 ORDER BY id DESC";
$result=mysql_query ($query);
$num=mysql_num_rows ($result);
mysql_close();
$i=0;
while ($i < $num) {
$time_ttl=mysql_result($result,$i,"time_ttl");
echo $time_ttl . "<br>";
++$i;
}
查询的结果如下所示:
0时35 00:25 00:10
总时间:01:10(1小时10分钟)
根据查询,总数会有所不同,我想根据查询计算总计。
我尝试使用此代码计算时间,但是我不确定如何在“while {}”部分内连接传入数据:
$times = array();
$times[] = "00:35";
$times[] = "00:25";
$times[] = "00:10";
function ttl_time($times) {
foreach ($times as $time) {
list($hour, $minute) = explode(':', $time);
$minutes += $hour * 60;
$minutes += $minute;
}
$hours = floor($minutes / 60);
$minutes -= $hours * 60;
$ttl_time = sprintf('%02d:%02d', $hours, $minutes);
}
代码正确计算总时间,但我正在寻找指导如何基于查询构建数组以提供给ttl_time函数,以便我可以将传入的查询数据连接到函数。
我试过这个:
$result2 = mysql_query("SELECT sum(time_ttl) FROM data1");
while ($rows = mysql_fetch_array($result2)) {
echo $rows['sum(time_ttl)'];
}
但它返回错误的结果
答案 0 :(得分:0)
如果我理解你的问题......
$i=0; $result_times = array();
while ($i < $num) {
$result_times[] = mysql_result($result,$i,"time_ttl");
++$i;
}
然后,您可以将$result_times
传递给ttl_time
函数。
至于您的其他尝试解决方案(使用sum
),它取决于数据类型。这可能会有所帮助:calculate a sum of type time using sql