PHP&SQL,查询自定义博客的嵌套年、月和帖子数

PHP&SQL,查询自定义博客的嵌套年、月和帖子数,php,mysql,sql,Php,Mysql,Sql,我想在一个链接中显示一个年度、月份和博客帖子数量的存档列表。大概是这样的: 2013年 十二月三日 2014年 一月四日 二月二日 …等,它将链接到一个页面,在该页面上显示当月的所有帖子 我试过: SELECT YEAR(date) as year, MONTH(date) as month, .... 在php中: <ul> <li><?php echo $year; ?> <ul> <li>&l

我想在一个链接中显示一个年度、月份和博客帖子数量的存档列表。大概是这样的:

2013年

十二月三日 2014年

一月四日 二月二日 …等,它将链接到一个页面,在该页面上显示当月的所有帖子

我试过:

SELECT YEAR(date) as year, MONTH(date) as month, .... 
在php中:

<ul>
  <li><?php echo $year; ?>
      <ul>
         <li><?php echo $month; ?> (<?php echo $countpost; ?>)</li>
      </ul>
  </li>
</ul>
试试这个:

SELECT YEAR(date) as year, MONTH(date) as month, COUNT(postid) as countpost
FROM postTable
GROUP BY YEAR(date), MONTH(date);

请参阅演示中的更多内容:

使用这些查询获得您所描述的输出

<?php
$con=mysqli_connect("localhost","root","","my_db");

$result=mysqli_query($con,"select distinct YEAR(date) as myyear from table");

while($fetch=mysqli_fetch_array($result))

{

echo "<b>".$fetch['myyear']."</b><br />";

$q1="select MONTH(date) as postmonth,count(*) as postcount from table where year(date)=".$fetch['myyear']." group by MONTH(date)";
$temp1=mysqli_query($con,$q1);
while($temp=mysqli_fetch_array($temp1))

echo "<b>".$temp['postmonth']."</b> (".$temp['postcount'].")<br />";

}

mysqli_close($con);
?>

希望能有帮助。

@user1613360添加了一个数据库。它没有真正起作用,只给了我一个结果。只显示了一个月。如果我将GROUP BY YEARdate设置为year,MONTHdate设置为monthCheck我们的演示,那么它也不起作用。是的,我们不能在GROUP BY子句中使用as关键字。忘了把它取下来。
<?php
$con=mysqli_connect("localhost","root","","my_db");

$result=mysqli_query($con,"select distinct YEAR(date) as myyear from table");

while($fetch=mysqli_fetch_array($result))

{

echo "<b>".$fetch['myyear']."</b><br />";

$q1="select MONTH(date) as postmonth,count(*) as postcount from table where year(date)=".$fetch['myyear']." group by MONTH(date)";
$temp1=mysqli_query($con,$q1);
while($temp=mysqli_fetch_array($temp1))

echo "<b>".$temp['postmonth']."</b> (".$temp['postcount'].")<br />";

}

mysqli_close($con);
?>