sql >> Database teknologi >  >> RDS >> Mysql

Avanceret nyhedsarkiv år/måned ved hjælp af PHP MySql

Du kan ikke bruge GROUP BY, hvis du også ønsker navnene på de enkelte artikler. Du skal blot hente hele listen og derefter gruppere i en række efter år og måned.

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

Når du gentager det resulterende array, kan du tælle nyhederne for hvert år/måned for at generere totalen.

<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. Glemt Password Script PHP mysqli database

  2. Brug af SUM på FLOAT-data

  3. Fatal fejl:Kald til et medlem funktion query() PHP CLASS

  4. mysql_connect() Forskel mellem localhost og 127.0.0.1