sql >> Databáze >  >> RDS >> Mysql

Pokročilý archiv novinek Roky/měsíc pomocí PHP MySql

GROUP BY nelze použít, pokud chcete i názvy jednotlivých článků. Jednoduše načtěte celý seznam a seskupte jej do pole podle roku a měsíce.

$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'];
}

Když iterujete výsledné pole, můžete spočítat novinky za každý rok/měsíc, abyste vygenerovali součet.

<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. MySQL - vyberte skupiny s hodnotami pokrývajícími množinu

  2. Základní třída VBA a odvozený objekt-2

  3. Jak vytvořit databázi mysql pomocí sequelize (nodejs)

  4. Parametrizovaný dotaz, který vrací sloupce TEXT, vždy vrací nulu u sloupců INT