所以,我在使用PHP和Mysql有效構建郵件的提要樣式列表時出現問題。 我希望根據發佈日期來組織和分組帖子,並將日期顯示爲標題。例如:從發佈之日起將mysql中的項目分組
February 9th -----------
Posts that were posted on Feb 9th
Feb 8th -----------------
Posts that were posted on the 8th
希望這是明確的。如果有人感到困惑,我會盡力澄清事情。
所以,我在使用PHP和Mysql有效構建郵件的提要樣式列表時出現問題。 我希望根據發佈日期來組織和分組帖子,並將日期顯示爲標題。例如:從發佈之日起將mysql中的項目分組
February 9th -----------
Posts that were posted on Feb 9th
Feb 8th -----------------
Posts that were posted on the 8th
希望這是明確的。如果有人感到困惑,我會盡力澄清事情。
問題中的標籤暗示使用「GROUP BY」。你做不是需要SQL GROUP BY構造。相反,查詢應該是這個樣子:
SELECT *
FROM MyPostsTable
--WHERE some optional condition
ORDER BY PostingDate -- DESC (if you want the newer dates first)
然後你通過resuults列表迭代,在PHP中,你只需要保持項目的日期目前正在輸出的選項卡,並放出排序的頭(「2月9日----------」),在新的日期開始。
編輯:請參閱Matt Bridges對上述邏輯示例實現的回答。
$sql = "SELECT PostDataColumn1, PostDataColumn2, date_format('%Y-%m-%d', DateColumn) FROM posts_table ORDER BY DateColumn DESC";
$result = mysql_query($sql);
$curDate = "";
while (list($col1, $col2, $date) = mysql_fetch_row($result))
{
if ($date != $curDate)
{
echo "$date --------\n";
$curDate = $date;
}
echo "Post data: $col1 $col2";
}
+1提供的PHP代碼,而不是像我一樣解釋它的一般邏輯;-) – mjv 2010-02-09 01:31:42
這是我最終使用的方法。謝謝你的幫助! – Dandy 2010-02-09 00:20:15
請問您可以發佈您使用的代碼嗎?我試圖解決這個問題,這讓我瘋狂! :( – 2012-01-13 02:09:53