PHP / MYSQL Year Month таблица для архива новостей - PullRequest
1 голос
/ 20 марта 2010

Я создаю архив новостей для своего сайта и хочу создать обзорную страницу из следующей таблицы БД:

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 голосов
/ 21 ноября 2017

Пример теста TEST

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>
0 голосов
/ 20 марта 2010

Придерживайтесь имеющегося у вас макета таблицы, затем для страницы обзора выберите newsDate как год и месяц и сгруппируйте их по ним (возможно, с учетом, если вы хотите показать, сколько статей в каждом месяце), затем выполните итерациюэто для вас линии.Должно быть довольно простым, чтобы сделать

...