0

我有 MySQL 数据库记录:post_id int、post_title 文本、post_date 时间戳(默认值为 current_timestamp)

如何使用具有以下结构的 PHP 生成站点地图,结果中没有空日期节点(其中帖子仅来自数据库),例如:

2010
- 2010 Jan
-- 2010 Jan 10
--- post-1
--- post-2
-- 2010 Jan 12
--- post-3
-- 2010 Jan 17
--- post-4
- 2010 Feb
-- 2010 Frb 05
--- post-5
2011
- 2011 Dec
-- 2011 Dec 02
--- post-6
--- post-7
-- 2011 Dec 21
--- post-8

等等

4

1 回答 1

1

首先,您必须选择您的数据,以便在您的结构中打印出来。应该是这样的:

SELECT day(post_date) as day, month(post_date) as month, year(post_date) as year,
DATE_FORMAT(post_date,"%Y-%m-%d") as created_at, post_title,
post_id FROM posts ORDER BY created_at; 

然后你遍历结果并构建一个以年、月和日为索引的多维索引。一个条目可能如下所示:

$data[2013][10][31] = array("post1", "post2");

有了它,就很容易打印出您的站点地图(只需几个 foreach 结构)。

于 2013-03-21T14:35:30.120 回答