0

我正在 php 中为 mysql 数据库运行一个查询,并成功运行了一个循环来检索我需要的信息。但是,我的部分输出需要一个额外的查询来输出两个字段的时间差异,我无法让它正确回显。$billable 工作正常,只是无法回显附加行以将时差添加到表中

$billable = mysql_query("SELECT * FROM responses WHERE company ='XXXXXX' && date  BETWEEN '$start_date' AND '$end_date' && time_arrived >0 && TIMEDIFF(time_arrived, time_received)< 2500", $connection); 
$num_rows = mysql_num_rows($billable);

$time_diff = mysql_query("SELECT TIMEDIFF('time_received',time_arrived')FROM alarmresponses WHERE company ='XXXXXXX' && date BETWEEN '$start_date' AND '$end_date' && time_arrived >0 && TIMEDIFF(time_arrived, time_received)< 2500 AS value_sum
", $connection); 
$elapsed = mysql_num_rows($time_diff);

while ($bill = mysql_fetch_array($billable)){


echo"<p style='page-break-before: always'>
<table>

<tr><td><p style='text-align: right;'>SCHEDULE B</p></td></tr>
<tr><td><p style='text-align: right;'>Page 1 of 1</p></td></tr>
<tr><td><p style='text-align: center;'>XXXXXXX</p></td></tr>
<tr><td><p style='text-align: center;'>SERVICE RESPONSE REPORT</p></td></tr>

<tr><td>Property Owner's Name</td</td>".$bill['name']."</td><td>DATE</td><td>".$bill['date']."</td></tr>
<tr><td>Address</td><td>".$bill['address']."</td></tr>
<tr><td>Type of SERVICE</td><td>".$bill['type']."</td></tr>
<tr><td>Time Received:</td><td>".$bill['time_received']."</td><td>Time Arrived<td><td>".$bill['time_arrived']."Time Clear:</td><td>".$bill['time_cleared']."</td></tr>";

echo"<tr><td>Total Time Elapsed:"***.$elapsed['value_sum'].***"Minutes00:00</td></tr>";
4

1 回答 1

0

您需要在查询中选择它,否则它不会成为您的结果集的一部分:

$billable = mysql_query("SELECT *, TIMEDIFF(time_arrived, time_received) AS time_elapsed FROM responses WHERE company ='XXXXXX' && date  BETWEEN '$start_date' AND '$end_date' && time_arrived >0 && TIMEDIFF(time_arrived, time_received)< 2500", $connection); 

echo $bill['time_elapsed']; // get the value and print it

仅供参考,不要将 mysql_* 函数用于新代码。它们不再被维护并且社区已经开始了弃用过程。看到红框了吗?相反,您应该了解准备好的语句并使用PDOMySQLi。如果你不能决定,这篇文章将有助于选择。如果你想学习,这里有很好的 PDO 教程

于 2012-10-18T11:17:56.477 回答