使用PHP MySql的高级新闻归档年/月
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用PHP MySql的高级新闻归档年/月,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1636字,纯文字阅读大概需要3分钟。
内容图文
![使用PHP MySql的高级新闻归档年/月](/upload/InfoBanner/zyjiaocheng/882/08422b7b1e49408eb647236e62d1345b.jpg)
我在MySQL数据库中插入带有时间戳的新闻日期.现在,我需要对新闻进行高级归档,例如:
2013
July (4)
News 1
News 2
News 3
News 4
December (2)
News 1
News 2
NovemberPrint (4)
News 1
News 2
News 3
News 4
2014
January (8)
News 1
News 2
News 3
News 4
News 5
News 6
News 7
News 8
现在,我需要任何PHP函数和MySQL SELECT结构才能使用PDO或MySQL Query进行打印.
在线示例HERE
编辑:我发现此询问从Here:
$sql = "SELECT YEAR(FROM_UNIXTIME(timestamp)) AS YEAR,
MONTHNAME(FROM_UNIXTIME(timestamp)) AS MONTH,
COUNT(*) AS TOTAL
FROM NEWS GROUP BY YEAR, MONTH ORDER BY YEAR DESC, MONTH ";
$newsdata = DataAccess::ArrayFetch($sql);
$currentYear = null;
foreach($newsdata AS $news){
if ($currentYear != $news['YEAR']){
echo '<h2>'.$news['YEAR'].'<h2>';
$currentYear = $news['YEAR'];
}
echo '<dd>'.$news['MONTH'].'<dd><dt>'.$news['TOTAL'].'</dt>';
}
但是,“仅打印”和“按年分组”是广告月份.我需要在每个月后列出文章.
解决方法:
如果您还需要各个文章的名称,则不能使用GROUP BY.只需获取整个列表,然后按年和月分组为一个数组.
$sql = "SELECT timestamp, your_id_column, your_title_column FROM `NEWS` ORDER BY timestamp DESC";
$newsdata = DataAccess::ArrayFetch($sql);
$nav = array();
foreach ( $newsdata as $news ) {
$year = date('Y', $news['timestamp']);
$month = date('F', $news['timestamp']);
$nav[$year][$month][$news['your_id_column']] = $news['your_title_column'];
}
迭代结果数组时,您可以计算每年/每月的新闻项以生成总数.
<ul>
<?php
foreach ( $nav as $k => $v ) {
?>
<li><?php echo $k ?>
<ul>
<?php
foreach ( $v as $k2 => $v2 ) {
?>
<li><?php echo $k2.' ('.sizeof($v2).')' ?>
<ul>
<?php
foreach ( $v2 as $k3 => $v3 ) {
?>
<li><?php echo $v3 ?></li>
<?php
}
?>
</ul>
</li>
<?php
}
?>
</ul>
</li>
<?php
}
?>
</ul>
内容总结
以上是互联网集市为您收集整理的使用PHP MySql的高级新闻归档年/月全部内容,希望文章能够帮你解决使用PHP MySql的高级新闻归档年/月所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。