我有这个mysql表:
+--------------------+---------+-------+ | date | query | count | |--------------------+---------+-------| |2012-11-18 09:52:00 | Michael | 1 | |2012-11-18 10:47:10 | Tom | 2 | |2012-11-17 15:02:12 | John | 1 | |2012-11-17 22:52:10 | Erik | 3 | |2012-11-16 09:42:01 | Larry | 1 | |2012-11-16 07:41:33 | Kate | 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
等等。我可以简单地获取结果并通过以下代码按日期将其排序:
$queries = mysql_query("SELECT * FROM my_tables ORDER BY date DESC LIMIT 20"); while($row = mysql_fetch_array($queries)){ echo "Name ".$row['query'].""; }
但是如何显示按特定日期排序的表中的元素,如下所示:
In 2012-11-18: Michael Tom In 2012-11-17: John Erik In 2012-11-16: Larry Kate
等等。谢谢!
这是PHP代码:
$query = mysql_query("SELECT date, query FROM table6 ORDER BY date DESC LIMIT 20"); $group_date = null; while ($row = mysql_fetch_assoc($query)) { if ($group_date !== substr($row["date"], 0, 10)) { $group_date = substr($row["date"], 0, 10); echo "<h1>$group_date</h1>\n"; } echo "${row['query']}<br>\n"; }
输出:
2012-11-18 汤姆 麦可 2012-11-17 埃里克 约翰 2012-11-16 拉里 凯特
汤姆
麦可
埃里克
约翰
拉里
凯特
请注意,虽然此代码将行按一列“分组”,但可以轻松地扩展为按多列对行进行分组。留作练习。