PHP:根据持续时间在表中使用img src

时间:2018-06-17 12:44:26

标签: php

我在下表的'img src'上有一些帮助,根据正数或负数显示上下图像。这对于我特别需要的东西非常有用。

如果avgduration大于00:01:00,我想重复使用此代码show up.png,

或down.png如果大于00:02:00。

avgduration是varchar。

我已经尝试了几种不同的组合和数小时的研究来弄清楚,但我找不到正确的答案

$stmt = sqlsrv_query($conn,$sql);
    echo "<h4><table border='5' column width='500'><tr><th><center>Call Taker</center></th><th><center>Duration from Call Received to First Status</center></th><th><center> </center></th></></tr>";

$img = ["-1" => "../tms/images/down.png", 
"0" => "../tms/images/equal.png",
"1" => "..tms/images/up.png"];

while( $row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC) ) 
{
    echo "<tr>";
    echo "<td><center>" . $row['CallTaker']. "</center></td>";
    echo "<td><center>" . $row['avgduration']."</center></td>";
   Echo '<td><center><img src="' . ($row['avgduration'] == 0 ? $img[$row['avgduration']] : $img[$row['avgduration']/abs($row['avgduration'])]) . '"></center></td>';;
    }
    echo "</table>";  

这就是我目前得到的错误:

  

注意:未定义索引:00:05:11 in   第523行的C:\ xampp \ htdocs \ calltaking.php

当然,代码不起作用。我之前在另一个部分使用过它,并且用于该特定表。我只是不知道如何计算它做我需要做的事情。

另外,如何在单元格中添加cellpadding?无论我放在这里,没有任何改变。没有必要,但它会很好 签, 准备好我的头发

1 个答案:

答案 0 :(得分:0)

根据您的问题,$row['avgduration']包含类似00:01:01的字符串值。比较字符串不会在这里正确地完成工作,但您可以尝试将其解析为纯整数值。一个简单的方法可能是:

function parseDate($input) {
    $parts = explode(':', $input);
    return $parts[2] + (60 * $parts[1]) + (3600 * $parts[0]);
}

然后,您只使用解析的持续时间来调整循环:

while( $row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC) ) 
{
    $parsedDuration = parseDuration($row['avgduration']);

    echo "<tr>";
    echo "<td><center>" . $row['CallTaker']. "</center></td>";
    echo "<td><center>" . $row['avgduration']."</center></td>";
    echo '<td><center><img src="' . ($parsedDuration == 0 ? $img[$parsedDuration] : $img[$parsedDuration/abs($parsedDuration)]) . '"></center></td>';
}