我在php中运行查询mysql数据库并成功运行循环以检索我需要的信息。 但是,我的部分输出需要一个额外的查询来输出两个字段的timediff,我无法正确回显。 $ 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>";
答案 0 :(得分: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_ *函数用于新代码。它们已不再维护,社区已开始deprecation process。请参阅red box?相反,您应该了解prepared statements并使用PDO或MySQLi。如果您无法决定,this article将有助于选择。如果您需要学习,请good PDO tutorial。