新闻档案的PHP / MYSQL年月表

时间:2010-03-19 23:02:58

标签: php mysql database-design archive

我正在为我的网站创建新闻档案,并希望从以下数据库表创建一个概述页面:

id - Unique identifier
newsDate - in a format XXXX-XX-XX
title - News Item title
details - News item
photo - News Item Photo
caption - News Item Photo caption
update - Timestamp for record

该网站上的新闻是最新的,但我希望在未来几个月和几年内添加一些数据。

我想要做的是为每年创建一个新行,并突出显示与数据库表中的记录对应的月份,类似于下面的内容。

2002 JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
2004 JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
2005 JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
2008 JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC

非常感谢任何帮助或建议

2 个答案:

答案 0 :(得分:0)

坚持你所拥有的表格布局,然后在概览页面中选择newsDate作为年份和月份以及分组(如果你想显示每个月有多少篇文章可能有计数),然后迭代它适合你。应该是相当基础的

答案 1 :(得分:0)

测试完整示例

<强> CSS

#Decor 
{
    width:200px;
}

#Decor, #Decor ul {
    list-style-type: none;
    margin-left:25px;
    margin-bottom:5px;
    padding-left:20px;
    cursor:pointer;
}

.handle { 
    background: transparent url( /images/tree-handle.png ) no-repeat left top; 
    display:block; 
    float:left;
    width:10px; 
    height:10px;
    cursor:pointer;
}

.closed { background-position: left top; }
.opened { background-position: left -10px; }

PHP文件

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <link href="CSS/treeview.css" rel="stylesheet" />
    <script src="scripts/jquery-1.11.1.min.js"></script>
    <script>
        $(function () {
            //start the tree in an autocollapsed state
            $('#Decor ul').hide(400);

            $('#Decor li').on('click', function (e) {
                e.stopPropagation(); // prevent links from toggling the nodes
                $(this).children('ul').slideToggle();
            });

            // This code opens all hyperlinks in a new window 
            // and avoids anchors
            $('#Decor a').not('[href="#"]').attr('target', '_blank');
        });
    </script>
</head>

<?php
define("DB_USER","");
define("DB_PASS","");
define("DB_HOST","");
define("DB_NAME","");

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME) or die(mysqli_errno());
$s="SELECT *,content_id,COUNT(content_id) AS itemCount FROM content_mast GROUP BY DATE_FORMAT(date_upload,'%Y') DESC";
$sql_result=mysqli_query($link,$s);
?>
<ul id="Decor">
<?php
while($row=mysqli_fetch_array($sql_result))
    {
    $datetime=strtotime($row['date_upload']);
    $tday = date("Y", $datetime);
    $count = $row['itemCount'];
    ?>
     <li class="level1"><?php echo "<u><strong>{$tday} ({$count})</strong></u><br>"; ?>
    <?php
        $s1="select * from content_mast where DATE_FORMAT(date_upload,'%Y')=$tday";
        $q=mysqli_query($link,$s1);
        while($month=mysqli_fetch_row($q))
        {
        ?>
            <ul>
               <li><a href="test.php?date=<?php echo $month[5]; ?>"><?php echo date("F",strtotime($month[5])); ?></a></li>
            </ul>
            <?php
        }
    echo "<br>";
    }
?>
</ul>
</html>