2012-04-12 67 views
1

正如你可能會告訴我吮吸MySQL使用PHP!所以這裏是我的問題:從mysql db中添加小時,然後通過PHP將它們添加到HTML表中

我有一個名爲TimeRecords的MySQL表,包含以下列:ID,日期,StartTime,EndTime,Break和Location。

我有一個顯示使用該SELECT

$result = mysql_query(" 
     SELECT * FROM TimeRecords 
     WHERE Date 
     BETWEEN '{$CurrentYear}-{$CurrentMonth}-1' 
     AND '{$CurrentYear}-{$CurrentMonth}-31' 
    "); 

該信息表,和本代碼:

<table> 
    <tr> 
     <th>Location:</th> 
     <th>Date:</th> 
     <th>Start:</th> 
     <th>End:</th> 
     <th>Break?</th> 
     <th>Total Hours</th> 
    </tr> 

    <?php 
     while($row = mysql_fetch_array($result)) { 

      echo "<tr>"; 
       echo "<td>". $row['Location'] . "</td>"; 
       echo "<td>". $row['Date'] . "</td>"; 

       echo "<td>" . date("h:i A", ($row['StartTime'])) . "</td>"; 
       echo "<td>" . date("h:i A", ($row['EndTime'])) . "</td>"; 

       echo "<td>"; 

       if ($row['Break']==1){ 
        echo "Yes"; 
       } 
       else { 
        echo "No"; 
       } 
       echo "</td>"; 

      echo "</tr>"; 
     } 


?> 
</table> 

我如何將減去結束時間和開始時間的表創建另一個獲得當天的總工作時間?

從我明白我可以抓住使用這個選擇信息:

$TimeWorked = mysql_query(" 
     SELECT ((EndTime - StartTime)/60/60) AS TimeWorked 
     FROM TimeRecords 
     ") 

,但我不知道我應該做的事,以顯示在循環中。任何幫助,將不勝感激!

+1

嘗試'$ row ['TimeWorked']'? – 2012-04-12 08:21:40

+0

不知怎的,我需要調用第二個SELECT查詢,但我不知道如何從第一個循環做到這一點。 – anthropaulogy 2012-04-12 08:33:23

+0

在你的第一個和唯一需要的查詢中,在'*'之後插入',((EndTime - StartTime)/ 60/60)AS TimeWorked'。然後在循環內用'$ row ['TimeWorked']'獲取該值。 – 2012-04-12 08:35:41

回答

1

嘗試:

$result = mysql_query(" 
     SELECT a.*, ((a.EndTime - a.StartTime)/3600) AS TotalHours FROM TimeRecords a 
     WHERE Date 
     BETWEEN '{$CurrentYear}-{$CurrentMonth}-1' 
     AND '{$CurrentYear}-{$CurrentMonth}-31' 
    "); 

看看是否能爲你工作。

+0

非常感謝!它像一個魅力。但。*和a.StartTime等中的「a」是什麼意思? – anthropaulogy 2012-04-12 08:44:27

+0

語法引用TimeRecords表。通常只有在您從多個表中提取數據時才需要(這裏不需要這麼做),但對於我來說,添加它們是反射性的。 – Femi 2012-04-12 09:11:57

0
$starttime = $row['StartTime'] 
$endtime = $row['EndTime'] 
echo "<td>" . date("h:i A", ($starttime)) . "</td>"; 
echo "<td>" . date("h:i A", ($endtime)) . "</td>"; 
echo "<td>" . ($endtime - $starttime)/3600 . "</td>"; 

我不完全確定我知道你的意思,但會爲你工作嗎?

+0

我嘗試了第一次,它的工作原理,但後來我會創建一個單元格,將總計所有的工作時間,這是完全無法完成的PHP工作。這就是爲什麼我需要mysql來完成這項工作。雖然謝謝! – anthropaulogy 2012-04-12 08:37:00

相關問題