Avatar billede venchil Nybegynder
05. januar 2007 - 23:27 Der er 1 kommentar og
1 løsning

Liste over alle måneder i alle år der er skrevet indlæg

Hej eksperter!

Jeg er ved at kode en blog, og til den skal jeg have en side, der tager alle år der er skrevet indlæg i, og så ellers lægger alle måneder der er skrevet indlæg i ind i de år. Sådan her, hvis vi antager, at der er skrevet indlæg i Juni-December 2006, og Januar 2007:

<h2>Archive</h2>
<dl>
    <dt><strong>2007:</strong></dt>
    <dd>
        <ul>
            <li>January</li>
        </ul>
    </dd>

    <dt><strong>2006:</strong></dt>
    <dd>
        <ul>
            <li>June</li>
            <li>July</li>
            <li>August</li>

            <li>September</li>
            <li>October</li>
            <li>November</li>
            <li>December</li>
        </ul>
    </dd>
</dl>

Mine datoer i datebasen er formatteret med datetime.

Nogen der kan hjælpe?
Avatar billede whatever Nybegynder
05. januar 2007 - 23:43 #1
Prøv noget i denne retning:

<?php

    $Res = mysql_query("
                        SELECT
                            YEAR(blog_date) AS blog_year,
                            DATE_FORMAT(blog_date,'%M') AS blog_month
                        FROM
                            blog
                        GROUP BY
                            blog_year,
                            blog_month
                        ORDER BY
                            blog_date DESC
                    ")
    $LastYear = "";
    $Output = "";
    while(list($BlogYear,$BlogMonth) = mysql_fetch_row($Res))
    {
        if ($LastYear != $BlogYear)
        {
            if ($Output)
                $Output .= "</dd></ul>";
            $Output .= "<dt><strong>".$BlogYear.":</strong></dt><dd><ul>";
        }
        $Output .= "<li>".$BlogMonth."</li>";
        $LastYear = $BlogYear;
    }
    $Output = ($Output) ? "<h2>Archive</h2><dl>".$Output."</dd></ul></dl>" : "<h2>Archive</h2><dl></dl>";

    echo $Output;

?>
Avatar billede venchil Nybegynder
06. januar 2007 - 02:12 #2
Tusind tak skal du have. Du manglede lige et ; in mysql-requesten, og jeg omstrukturerede din kode lidt, men nu virker det helt perfekt!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester