How to create an archive list in php?

2019-02-20 10:27发布

I am creating my companies blog and would like to know how to go about creating an archive page where the reader can click on the month/year and display all blog posts for that time period.

I see this very often on blogs these days and would like to know how I can myself create it.

It will look something like this:

  • July 2012
  • June 2012
  • March 2012

Obviously I would want the list created dynamically by referencing the time field in my blog table, but where to start?

Is there any documentation on how to implement this?

I am creating my own blog from scratch.

3条回答
闹够了就滚
2楼-- · 2019-02-20 11:07

If you are using a database, you can simply use timestamps to group articles based on date.

If you aren't using a database, you can use the filesystem, and place each article in a relevant structure:

/articles/2011/July/article_name_here.html

查看更多
We Are One
3楼-- · 2019-02-20 11:10

Given you mentioned no specific framework / CMS, I will present the general idea I would take:

Get the list of months to render

SELECT Month(`date`), Year(`date`) FROM articles GROUP BY Month(`date`), Year(`date`)

Render list of articles for given time span

SELECT * FROM articles WHERE Date(`date`) = foo, Year(`date`) = bar

The rest is just render itself, too much based on your current implementation, but this ought to give you a way to start from.

查看更多
我欲成王,谁敢阻挡
4楼-- · 2019-02-20 11:10

There are some ways to approach this.The most easy way i can think of is that you create a link for each month that takes you to an html page with all the post of that month.(It requires to do it manually every month).

Another way is to do it with MySQL and make all the process dynamic and automatic. Each time your post is submited a reference link will be saved to the database for each months.

Then you can echo out the months from your database and give them a link to a php file or what your language is to echo out the post only from that month.You will be needed also to pass variables. You link would be something like this

index.php?month=september2012

I have this system in site. There also some ways .. like CMS style saving your to a text file.. but I haven't tried thus I cannot support you.

I hope a gave you at least some idea of how this could be done.

查看更多
登录 后发表回答