我在下表的'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?无论我放在这里,没有任何改变。没有必要,但它会很好 签, 准备好我的头发
答案 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>';
}