Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zaawansowane archiwum wiadomości Lata/Miesiąc przy użyciu PHP MySql

Nie możesz użyć funkcji GROUP BY, jeśli chcesz również nazwy poszczególnych artykułów. Po prostu pobierz całą listę, a następnie pogrupuj w tablicę według roku i miesiąca.

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

Kiedy iterujesz wynikową tablicę, możesz policzyć wiadomości dla każdego roku/miesiąca, aby wygenerować sumę.

<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. Jak znaleźć różnicę między dwiema tabelami MySQL za pomocą instrukcji MySQL?

  2. Gdzie przechowywać dane uwierzytelniające MySQL w skryptach PHP?

  3. MySQL - wymuś nieużywanie pamięci podręcznej do testowania szybkości zapytań

  4. Zrzucanie zapytań SQL na ekran w Laravelu

  5. c3p0 zawiesza się w oczekiwaniu Dostępny z hibernacją