sql >> データベース >  >> RDS >> Mysql

PHPMySqlを使用した高度なニュースアーカイブの年/月

    個々の記事の名前も必要な場合は、GROUPBYを使用できません。リスト全体を取得してから、年と月ごとに配列にグループ化するだけです。

    $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. .NETまたはMSSQLを使用したMySqlのpassword()暗号化のシミュレーション

    2. mysqlの最初の3文字を削除するにはどうすればよいですか?

    3. MySQLからの既存の値に基づいて次の英数字IDを取得する方法

    4. シェルスクリプトを使用して複数のMySQLコマンドを実行するためのより良い方法