【问题标题】:PHP & SQL, querying for nested year, month, and number of posts for a custom blogPHP & SQL,查询自定义博客的嵌套年、月和帖子数
【发布时间】:2014-06-09 11:33:20
【问题描述】:

我想在链接中显示年、月的存档列表以及博客文章的数量。像这样的:

  • 2013

    • 12 月 (3)
  • 2014

    • 一月 (4)
    • 二月 (2)

...等,它将链接到一个页面,该页面将显示该月的所有帖子。

我试过了:

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>

但我只是得到一个空白页,我很确定我做错了查询。

编辑:添加数据库

postid | title | date | content | userid | active

【问题讨论】:

  • @user1613360 添加了数据库

标签: php mysql sql


【解决方案1】:

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

<?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);
?>

希望对你有帮助。

【讨论】:

    【解决方案2】:

    试试这个:

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

    在演示中查看更多信息:SQL Fiddle

    【讨论】:

    • 没有真正的工作,它只给我一个结果。仅显示 1 个月。
    • 如果我输入GROUP BY YEAR(date) as year, MONTH(date) as month也不起作用
    • 查看我们的演示,是的,我们不能在 GROUP BY 子句中使用 AS 关键字。忘记删除了。
    猜你喜欢
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    相关资源
    最近更新 更多