需要有关mysql查询的帮助

时间:2011-04-08 06:48:05

标签: php mysql

我有一个mysql数据库,在这个我有一个叫做文章的表。我想在我的网页上显示这篇文章的档案。我想要做的是,我必须显示年份,一旦用户点击年份它将显示包含文章的月份列表..我怎么能写这个mysql查询?我面临的问题是,我必须显示包含文章的年份,就像几个月一样。我的文章在我的表格中以时间戳的形式创建了日期..任何人都可以建议我怎么做?

编辑:

CREATE TABLE IF NOT EXISTS `articles` (
  `id` int(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `pid` int(20) NOT NULL DEFAULT '0',
  `department_id` int(20) NOT NULL,
  `author` varchar(100) NOT NULL,
  `created` varchar(25) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;

3 个答案:

答案 0 :(得分:2)

您的数据库引擎具有从SQL时间戳中提取数据和时间的各个部分的功能。例如,在MySQL中你可以做

SELECT YEAR(created), MONTH(created) FROM articles ...

答案 1 :(得分:2)

我建议你使用算法

首先使用

从数据库中选择所有年份名称
SELECT  FROM_UNIXTIME(created, '%Y') AS `year`
   FROM    articles
   GROUP BY year

然后使用下面的

获取每个月的数据
SELECT  *, FROM_UNIXTIME(created, '%Y') AS `year`
FROM    articles
HAVING  `year` = 2009 

答案 2 :(得分:0)

显示文章

在php中

$ r = mysql_query(“按年份,月份选择文章排序”);

然后全部显示

$ oldYear = 0; while($ article = mysql_fetch_array($ r){

 $year =$article[year]
 if($year != $oldYear){
          echo $year
          oldYear = $year
 }

  echo $article[month]

}

使用ajax,只要让每个mont都是一年的子菜单 希望这有帮助