计算数据库的总小时数

时间:2015-12-08 14:47:13

标签: php mysqli

我有一个登录PHP,它显示了我已经完成的所有事情。

构造就像:

日期 - 完成的事情 - 时间

我想了解如何在表格中显示所有信息。但是我希望在底部有一个总小时计算数据库的所有小时数。

我每天都会添加一个新日志(我当天所做的事情)。但我想知道如何做到这一点。我现在一直在寻找,但没有成功..

我希望有人能帮助我。

提前致谢。

这就是我显示代码的方式(简短版本):

 <tr>
        <td class="date"><?php echo $row['Date'] ?></td>
        <td><?php echo $row['Detail'] ?></td>
        <td><?php echo $row['Hours'] ?></td>
    </tr>

所以澄清:

我创建了一个新的td,通过添加所有小时数来回显总小时数。

因此,如果小时表中的小时数为8 + 8 + 8 + 8 + 4 + 5,则会显示为:

总小时数:41小时

1 个答案:

答案 0 :(得分:1)

要显示总小时数,请执行以下操作:

$db = new mysqli( DB_HOST, DB_USER, DB_PASS, DB_DATABASE );
$sql = 'SELECT SUM( `Hours` ) AS `total` FROM `table_name`';
$res = $db->query( $sql ) or die( 'MySQL error ' . $db->error );
$row = $res->fetch_assoc();
echo 'Total: ' . $row['total'];

如果date属于典型日期时间/日期/时间戳,您可以像这样获取每天的总数(如果date是日期类型,则不需要DATE(日期)):

$sql = 'SELECT DATE(`date`) AS `day`, SUM(`Hours`) as `total` '
     . 'FROM `table_name` GROUP BY DATE(`date`) ORDER BY `date`';
$res = $db->query( $sql ) or die( 'MySQL error ' . $db->error );
while( $row = $res->fetch_assoc() )
    echo $row['day'] . ' has ' . $row['total'] . ' hours' . PHP_EOL;

如果date是典型的int或PHP时间戳,你可以像这样得到每天的总数:

$sql = 'SELECT DATE( FROM_UNIXTIME(`date`) ) AS `day`, SUM(`Hours`) as `total` '
     . 'FROM `table_name` GROUP BY DATE(FROM_UNIXTIME(`date`)) ORDER BY `date`';
$res = $db->query( $sql ) or die( 'MySQL error ' . $db->error );
while( $row = $res->fetch_assoc() )
    echo $row['day'] . ' has ' . $row['total'] . ' hours' . PHP_EOL;