2012-12-02 59 views
0

Possible Duplicate:
Listing diary events grouped by days in PHP/MySQL集團由MySQL日期字段

我有持有現場樂隊演出爲我鎮的數據庫,每一個演出被存儲在我的MySQL數據庫中的記錄。

我想每天去看我的網站上的演出。但GROUP BY函數將只顯示1條記錄。我如何在一個日期下顯示所有演出?

我的MySQL結構..

ID date     content 
1 2012-12-02 00:00:00  Gig 1 
2 2012-12-02 00:00:00  Gig 2 
1 2012-12-03 00:00:00  Gig 1 
2 2012-12-03 00:00:00  Gig 2 

我想表明這樣的..

-- Sun 02 December 2012 -- 
Gig 1 
Gig 2 

-- Mon 03 December 2012 -- 
Gig 1 
Gig 2 
+4

格式和顯示應該在客戶端完成,而不是在SQL中完成。 –

+0

我試過使用GROUP BY,但它只顯示每個日期的1條記錄 – Tom

+0

什麼是您使用的SQL語句? –

回答

0

不要將結果分組到數據庫層,在表示層中執行。例如,使用PDO:

$dbh = new PDO("mysql:dbname=$dbname", $username, $password); 

$qry = $dbh->query(' 
    SELECT UNIX_TIMESTAMP(date), content 
    FROM  gigs 
    WHERE date > NOW() 
    ORDER BY date 
'); 

if ($qry->execute()) { 

    // output headers 
    echo '<h1>Upcoming gigs</h1>'; 

    $row = $qry->fetch(); 
    while ($row) { 
    $current_date = $row['date']; 

    // output $current_date initialisation 
    echo '<h2>', date('D d F Y', $current_date), '</h2><ul>'; 

    do { 
     // output $row details 
     echo '<li>', htmlentities($row['content']), '</li>'; 
    } while ($row = $qry->fetch() and $row['date'] == $current_date); 

    // output $current_date termination 
    echo '</ul>'; 
    } 

    // output footers 

} 
+0

嗨,感謝您的幫助。雖然'致命錯誤:帶有'無效數據源名稱'消息的未捕獲的異常'PDOException',我得到了此代碼的錯誤。' – Tom

+0

您可能需要更改[DSN](http://php.net/manual/en /ref.pdo-mysql.connection.php)以滿足您的需求。 – eggyal

+0

啊,是的,我正在愚蠢。現在排序和腳本正在運行,但沒有演出信息。日期存儲爲DATETIME字段,那會好嗎? – Tom

0

試試這個

SELECT * 
    FROM your_table 
    WHERE date = '".$your_variable_of_selectedDate."' 
    GROUP BY date 
    ORDER BY date 

編輯: 如果u dont有日期然後只是給出一個具體的日期

SELECT date , content 
    FROM your_table 

    GROUP BY date 
    ORDER BY date 
+0

您能詳細說明「$ your_variable_of_selectedDate」位嗎? – Tom

+0

您將在日期顯示您的演出日期。有日期的選擇選項?如果你沒有日期變量,只是使用日期insttead –

+0

看到我的更新 –