2013-03-26 37 views
0

我目前有一个系统,输出一个等待时间,给定他们的到达时间和当前时间; (当前时间 - 到达时间)。我将如何编程代码以便SQL时间超过

if the waiting_time exceeds 3 hours then alert "patient must be seen next!" 

这是我迄今为止计算waiting_time的代码。

<?php 

$conn = mysqli_connect("localhost","root","") or die ("No connection"); 
mysqli_select_db($conn, "a&e") or die('Could not select database.'); 

$query = "SELECT PatientID, Forename, Surname, Gender, Illness, Priority, Arrival_time, TIME_FORMAT(ABS(TIMEDIFF(CURTIME(), Arrival_time)),'%H hours') as Waiting_Time FROM Patient"; 
$result = mysqli_query($conn, $query) or die("Invalid query"); 

echo "<table border='1'> 
<tr> 
<th>PatientID</th> 
<th>Forename</th> 
<th>Surname</th> 
<th>Gender</th> 
<th>Illness</th> 
<th>Priority</th> 
<th>Waiting Time</th> 
</tr>"; 

while ($row = $result->fetch_object()){ 

echo "<tr> 
    <td>" . $row->PatientID . "</td> 
    <td>" . $row->Forename . "</td> 
    <td>" . $row->Surname . "</td> 
    <td>" . $row->Gender . "</td> 
    <td>" . $row->Illness . "</td> 
    <td>" . $row->Priority . "</td> 
    <td>" . $row->Waiting_Time . "</td> 
    </tr>"; 

} 

echo "</table>"; 
mysqli_close($conn); 
?> 
+0

您驾驶室检查在到达时间和当前时间之间经过多少分钟,如果> 180(3小时* 60分钟),则显示某种警报/通知。您也可以通过等待时间排序desc SELECT NOW(),TIMESTAMPDIFF(MINUTE,'2013-03-26 08:24; 15',NOW())AS WaitTime,IF(TIMESTAMPDIFF(MINUTE,'2013-03-26 08 :24; 15',NOW())> = 180,'alert','na');希望这有助于 – 2013-03-26 15:42:04

+0

我如何检查到达时间和当前时间之间已经过了多少分钟? – 2013-03-26 15:55:22

+0

检查TIMESTAMPDIFF的语法 – 2013-03-26 15:56:30

回答

0
$query = "SELECT PatientID, Forename, Surname, Gender, Illness, Priority, Arrival_time, 
      TIME_FORMAT(ABS(TIMEDIFF(CURTIME(), Arrival_time)),'%H hours') as Waiting_Time 
      FROM Patient 
      ORDER BY TIMEDIFF(CURTIME(), Arrival_time) DESC"; 

然后你的结果排序,最长等待第一。

<?php 

while ($row = $result->fetch_object()): ?> 

    <tr> 
    <td><?=$row->PatientID?></td> 
    <td><?=$row->Forename?></td> 
    <td><?=$row->Surname?></td> 
    <td><?=$row->Gender?></td> 
    <td><?=$row->Illness?></td> 
    <td><?=$row->Priority?></td> 
    <td><?=$row->Waiting_Time?> 
     <? if ($row->Waiting_Time >= 3): ?> 
      <strong>Patient must be seen!</strong> 
     <? endif; ?> 
    </td> 
    </tr> 

<? endwhile; ?> 
+0

这不适合我,你有没有测试过这个? – 2013-03-26 17:00:08

+0

不,我没有。我不打算创建这个模式只是为了测试这个 – 2013-03-26 17:05:48

+0

不幸的是它不工作,我需要它工作! – 2013-03-26 18:20:10

相关问题