Mysql
 sql >> база данни >  >> RDS >> Mysql

Разширен архив на новини Години/Месец с помощта на PHP MySql

Не можете да използвате 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>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wordpress комбинирани заявки

  2. Непървични външни ключове в Django

  3. Запитване за най-новото съобщение във всеки разговор с всеки друг потребител

  4. Трябва ли да използвам типа данни за дата и час в MySQL?

  5. Преминаване към mysqli, mysql_result