2015-11-26 81 views
0

我正在使用PHP(http://imgur.com/mlNxAdT)日程表,且遇到了一些問題。我希望日曆能夠更加自動化,因爲我手動創建表格並將時間和日期放在自己的位置,這很好,但是我的問題是我每隔一小時需要一個SQL函數(從10:00-17:00),每一天看起來都非常低效。檢查時間在數據庫中超過特定​​時間

我的HTML表格代碼的結構爲這樣:

<tr> 
    <td> 
    <span> 
     <p style="float:left">10:00</p> 
     <p style="float:right">&nbsp;&nbsp;&nbsp;(<?php echo $var->monday_10; ?>)</p> 
    </span> 
    </td> 
    <td></td> 
    <td></td> 
    <td></td> 
    <td></td> 
    <td></td> 
    <td></td> 
</tr> 

而且我有這個PHP函數:

public function get_CalendarCount($conn) 
{ 
    // TODO: Comment this function 
    // TODO: If a booking goes over a time (eg. 13:00) then add to count 
    $sql = 
    " 
    SELECT DAYNAME(arrivalTime) AS day, COUNT(*) AS count 
    FROM bookings 
    WHERE HOUR(arrivalTime) = 10 
    AND DAYNAME(arrivalTime) = 'Monday' 
    "; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) 
    { 
     while($row = $result->fetch_assoc()) 
     { 
      $this->monday_10 = $row["count"]; 
     } 
    } 
    else 
    { 
     echo "0 results"; 
    } 
} 

正如你所看到的,在這個例子的時候(13.00)和天(星期一)是手動輸入的。我怎樣才能改變這個,從表中得到時間/日子,並保持每個td的相同功能?此外,我想改變我的SQL查詢(如PHP get_CalendarCount函數中所示),以便它檢查數據庫中的預訂(http://imgur.com/7A0cxGr)是否超過一段時間(例如,到達時間10:00 - pickup時間12 :00 - 10:00和11:00都需要計時,因爲預訂時間爲10:00 & 11:00(各1小時)

真的很感謝幫助,因爲我有點卡在這裏,真的不能找到這個解決任何事情。

+0

我想你應該獲取數據,並用PHP處理它,而不是通過查詢無所不爲。 – Daniel

+0

JQuery?該函數在PHP中。 –

+1

他正在談論SQL查詢。我不同意@Stah,並認爲DB邏輯應該在數據庫中完成。 – apscience

回答

1

這不回答這個邏輯,你應該改變,但使用在您的查詢的變量,因此您不必手動將他們的問題。對於你的問題關於製作在hourdayname變量,你需要改變這一點:

public function get_CalendarCount($conn) 
{ 
$sql ="SELECT DAYNAME(arrivalTime) AS day, COUNT(*) AS count 
FROM bookings WHERE HOUR(arrivalTime) = 10 AND DAYNAME(arrivalTime) = 'Monday'"; 

到:

public function get_CalendarCount($conn,$hour,$dayname) 
{ 
$sql ="SELECT DAYNAME(arrivalTime) AS day, COUNT(*) AS count 
FROM bookings WHERE HOUR(arrivalTime) = ".$hour." AND DAYNAME(arrivalTime) = '" . $dayname ."'"; 
+0

我將使用Javascript從表格中獲取小時和星期的名稱,然後傳遞它。我會嘗試一次回家。 –

相關問題