2012-04-11 74 views
1

這是一個時間表,它的作用是顯示前一天的時間表和誰已經預訂了每個插槽(這是電臺。)顯示結果從MySQL查詢到表使用PHP

目前,它顯示誰按時間順序預訂了每個插槽,但是我希望它說明每個結果旁邊的時間。查詢輸出24行(從午夜到23:00),並在每個插槽旁邊顯示(00:00,01:00,02:00,03:00 ... 21:00,22 :00等等等等)

這是我當前的代碼:

<?php 
include("../config.php"); 

#// Timetable Clearup Variabls 
$yesterday = strtotime('yesterday'); 
$yesterdow = date('l',$yesterday); 

echo "<table width=\"580px\" class=\"board\" border=\>"; 

$order = "SELECT * FROM timetable WHERE day = '$yesterdow'"; 
$result = mysql_query($order); 

// Error checking 
if (!$result) { 
    // output error, take other action 
} 
else { 
    while ($row=mysql_fetch_array($result)){ 
    // Append all results onto an array 
    $rowset[] = $row; 
    } 
} 
    foreach ($rowset as $row) { 
    echo "<tr><td>" . htmlspecialchars($row['username']) . "</td></tr>"; 
} 



?> 

你能幫忙嗎?

+0

另外,您應該將一週的天數存儲爲數字,而不是名稱。然後,你可以自然排序,他們不依賴於英語。 – Corbin 2012-04-11 18:43:39

+1

@Corbin - 除了他的實際問題似乎沒有說什麼排序,而是顯示時間。 – Cfreak 2012-04-11 18:43:53

+1

如何將時隙存儲在您的數據庫中? – 2012-04-11 18:43:57

回答

1

我認爲一個非常簡單的問題,我們都在尋找太難了。您已在查詢中使用SELECT *,因此您已經從表格中提取了所有三列。所以現在,您只需在表格的每一行添加另一個單元格。

echo "<tr><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></tr>"; 

,並確保你在正確的順序讀取你行,你應該添加一個ORDER BY到查詢:

SELECT * FROM timetable WHERE day = '$yesterdow' ORDER BY time 

如果不指定ORDER BY條款,你有沒有保證你會以任何特定的順序得到結果。

還有最後一件事,您不必要地循環遍歷行兩次。擺脫foreach循環,並將回聲直接放在while循環中。

+0

優秀。謝謝。現在有什麼方法可以將輸出的信息轉換爲RSS提要? – Logan 2012-04-11 18:56:40

+0

當然,你可以。但這超出了這個問題的範圍。在這裏提出問題之前,您可能需要遵循一些教程。 [W3Schools](http://www.w3schools.com/)爲初學者提供了一些很好的教程。堆棧溢出更多的是爲特定問題尋求解決方案,而不是尋求教程的地方。 – Travesty3 2012-04-11 19:05:13

0

試試這個:

foreach ($rowset as $row) { 
echo "<tr><td>" . htmlspecialchars($row['username']) . htmlspecialchars($row['time'])"</td></tr>";